プラグインを開発している時に、別のプラグインのファイルを読み込んで使いたいケースで使えるTipsです。
require_once(WP_PLUGIN_DIR . '/plugin-name/plugin-file.php');
とすると、無事に読み込むことができます。
ポイントは、WP_PLUGIN_DIR
を使っているところです。これをbloginfo()
やplugins_url()
などの関数を使ってやろうとすると、以下のエラーが出てしまいます。
http:// wrapper is disabled in the server configuration by allow_url_include=0
http:// を含む読み込みを無効にするphpの設定に引っかかるのです。
参考:allow_url_include | PHP: 実行時設定 – Manual
なぜ、WP_PLUGIN_DIR
であれば大丈夫なのかといいますと、この定数は、/var/www/
から始まるフルパスなので、http://
を含まないのであります。
@HissyNCさん、 @odysseyさん、ありがとうございました!
今回は、マルチサイト用のプラグインで両方とも自作、片方はネットワーク有効化、もう一方は普通に有効化したいというケースだったので読み込みました。これが他の人のプラグインを読み込むということになると、読み込み先が更新されると動かなくなりますので、丸ごとコピーした方がよさそうですね。
hissyの以下の一行ツイートがイケメン過ぎですね。
@shinichiN WP_PLUGIN_DIRとか。
— Takuro Hishikawaさん (@HissyNC) 1月 4, 2012
コメント