Defensio プラグインを WordPress ME で使う
なんか、日本語版は管理画面でエラーが出る(画面には出ないけど、httpd のエラーログにもにょもにょと)ので、結局本家版を利用することにしました。
lib/defensio_utils.php の is_wp_version_supported() で、$wp_version を数値比較してるんだけど、WP ME だとこのバージョン情報が”ME2.2.3″ とかなっているのね。でこれを暗黙の数値化するときにたぶん0あたりになってて比較でコケる、と。
なんで ME はこんな風にしてるんでしょうかね。或いは、 $wp_version を数値と見做す方が問題なのか?この辺の規約がよーわからんからなんとも判断付かないけど、バージョンはオリジナルにして、boolean な ME フラグを用意すればいいのになーなんて思ったり思わなかったり。
そーいえば、本家 WP 用の日本語言語ファイルとプラグインセットみたいなのが出てたと思うので、それで ME は捨てて本家の 2.3 に移行しようと思ってたんですが、なんかヘンなことになったら対処面倒だなーと思って放置中だった。年が明けたら移行するかなー。以下、メモ用リンク。
・WP 2.3.1 用日本語リソースと日本語リソース入り WP 2.3.1
・マルチバイト文字に関する問題の累積的修正を行うプラグイン
閑話休題。
本題の判定がコケる件は、is_wp_version_supported() の判定をコメントアウトするか、これのNextGen Gallery の項目にあるように、判定前に “ME” を strip して判定すればちゃんと動きます。どーせ動くのはわかってるんだから、バリっと判定をコメントアウトしちゃうのが楽だと思います。