プラグインの置き場所
WP 強化月間。 😛
Arne さんの Google Sitemap Generator のソースを眺めていてちょっとした発見を。
言語ファイルを load_textdomain しているところで、
//Hmm, doesn’t work if the plugin file has its own directory.
となっていて、前からなんだろうと思っていました。
はなっから、wp-content/plugins 直下に置かないとプラグインは動かない物だとおもっていたのですが、もしやとおもい plugin 配下に “ディレクトリ” を作ってその下にプラグインのファイル置いてみたら、ちゃんと WP が認識するではないですか。 ただし、load_textdomain 関数はplugins 直下のファイルしかみてくれないという話のようです。
ということで、load_textdomain するところは(Arne さんもやっているように)
$domain_name = 'searchword-highlight';
$locale_name = get_locale();
$mofile_name = dirname(__FILE__);
$mofile_name .= "/$domain_name-$locale_name.mo";
load_textdomain("$domain_name", $mofile_name);
なんてすると、ディレクトリ配下でも言語ファイルよめるようになるので、plugins の下にディレクトリをつくってプラグインのプログラムと言語ファイルを「まとめて」おいて置くことができます。 ディレクトリ名はなんでもいいようです。 管理しやすくてイイ!!
load_textdomain 関数が正式に対応するまでのアドホックコードですが、これで読まれない言語ファイルも気兼ねなく置いておけますね。 🙂
追記。
プラグインによってはディレクトリを wp-content/plugins 直に指定しているのもあるので、若干コードの修正が必要なのもあるかもしれません。