とあるプラグインから、別のプラグインのファイルを読み込む方法

プラグインを開発している時に、別のプラグインのファイルを読み込んで使いたいケースで使える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の以下の一行ツイートがイケメン過ぎですね。

↓ プラグインを作る方々への本、書きました。 ↓

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です