wp-tmkm-amazon + SimpleXML
wp-tmkm-amazonをSimpleXML関数を使って書き直してみました。SimpleXML関数を使っているのでPHP5以降が必要です。SimpleXMLを使っているだけで、新しい機能は何もありません。機能的にはオリジナルと全く同じです。
別に気にしなければ大した問題ではないのかもしれませんが、エラーログを見たら、
“PHP Warning: Call-time pass-by-reference has been deprecated; ”
という文句で始まるエラーでいっぱいになっていまして。エラーメッセージによるとwp-tmkm-amazonに同梱されているxml.phpがエラーの原因。
このCall-timeうんぬんというエラーは、php.iniの中にある「allow_call_time_pass_reference」がOffの状態にあるとき、引数を参照渡ししようとすると発生するエラーのようです。
php_flag allow_call_time_pass_reference = Off
エラーを消すには、php.iniを開いてこれをOnにするのが一番簡単です。あとhtaccessに、
php_flag allow_call_time_pass_reference on
と記述しても同じ効果になるようです。
ですが、この「allow_call_time_pass_reference」の機能は将来的にはサポートされないらしいので、できればOffのままにしておきたい。サーバー変えたりしたときにデフォルトではない要素があると、その分、手間が増えるので。
まあ、別にほっといても大した問題じゃないのかもですが、エラーログがエラーでいっぱいになってるのはなんとなく気持ちが悪いし、それにPHP5ならxml.phpを使わなくてもSimpleXML関数でxmlの操作ができるので、書き換えてみることにしました。
あと、ついでに以下のエラーも出ないようにしました。
“PHP Notice: Undefined index: mode in /(サーバー)/wp-content/plugins/wp-tmkm-amazon/wp-tmkm-amazon-search.php on line 61,”
このエラーは、$_GET['mode']が設定されていないのに値を比較しようとしたときに発生するようだったので、$_GET['mode']が存在しないときは、空の値を入れてあげて、エラーを抑えました。
さらについでに、投稿画面のAmazon商品検索フォームの表示・非表示を選択できるようにしました。自分、検索フォームを使ってないので。
そんなわけでこのプラグインはPHP5以降(SimpleXML関数)が必須です。PHP4とかを使っている人や別にエラーとか気にならない人などは、オリジナルのwp-tmkm-amazonを使ってください。PHP5使ってて、なんかエラーが気になっちゃうんだけど、allow_call_time_pass_referenceはデフォルトのままOffにしておきたい人専用です。
自分のサイトでオリジナルのtmkm-amazonと置き換えてみたところでは特に不具合はなかったのですが、動作をちゃんと検証したわけではないので、なんか動きが変なところが残ってるかもです。ご了承下さい。
