広告

【WordPress】plugin_dir_pathでプラグインのディレクトリが取得できない

アイキャッチ WordPress

WordPressでプラグインのパスを取得する方法についての覚え書きです。

plugin_dir_path関数ではプラグインディレクトリは取得できない

その名前で混同しがちですが、plugin_dir_path()関数はプラグインのディレクトリを取得する関数ではありません。

$plugin_path = plugin_dir_path(__FILE__);
echo $plugin_path;

のように、ファイル名を指定してプラグインディレクトリを取得する例として紹介されることも多くありますが、例えばテーマディレクトリのfunctions.phpなどでこの記述を行うと、返ってくるのはfunctions.phpのパスになってしまいます。

実際、WordPressのソースコードでは、このplugin_dir_path関数は以下のように記述されており、単純に指定されたファイルの所在するディレクトリ名とスラッシュ文字を付加した文字列を返すような動作になっています。

function plugin_dir_path( $file ) {
    return trailingslashit( dirname( $file ) );
}

functions.phpによるテーマのカスタマイズなど、プラグインディレクトリ以外で情報を取得したい場合は、WP_PLUGIN_DIRの値が使えます。

$plugin_path = WP_PLUGIN_DIR.'/your-directory/';
echo $plugin_path;

その他のディレクトリ定数には以下のようなものがあります。

WP_CONTENT_DIR // コンテンツディレクトリまでのフルパス、末尾のスラッシュなし
WP_CONTENT_URL // コンテンツディレクトリまでのURL
WP_PLUGIN_DIR // プラグインディレクトリまでのフルパス、末尾のスラッシュなし
WP_PLUGIN_URL // プラグインディレクトリまでのURL

コメント

タイトルとURLをコピーしました