WordPress: 現在のプラグインディレクトリ名を取得する


WordPress のカスタマイズファイルはすべて KHCustom という自作プラグインに収めています。ディレクトリ名は kh-custom。

/wp-contents/plugins/kh-custom/src/class/test.php
から 'kh-custom' を取得しようとしたのですが、意外に簡単ではありませんでした。

plugins_url() などそれらしい標準関数はあるのですが、プラグインディレクトリだけを取り出すことができません。出力させてみると次のようになりました。

print_r( [
	plugins_url(),
	plugins_url( 'test.css', __FILE__ ),
	plugin_dir_url( __FILE__ ),
	plugin_dir_path( __FILE__ ),
	plugin_basename( __FILE__ ),
] ,true ) );

Array (
    [0] => https://listfreak.com/wp-content/plugins
    [1] => https://listfreak.com/wp-content/plugins/kh-custom/src/class/test.css
    [2] => https://listfreak.com/wp-content/plugins/kh-custom/src/class/
    [3] => /home/(...snip...)/wp-content/plugins/kh-custom/src/class/
    [4] => kh-custom/src/class/LF_Custom_CSS.php
)

plugin_basename() の先頭にプラグインディレクトリが来ているので、'/' で分割して先頭を取得すればよいことになります。

current( explode( '/', plugin_basename( __FILE__ ) ) )

あるいはプラグインのメインファイルで次のように定義しておくか。

define( 'KH_PLUGIN_SLUG', basename(__DIR__) );

Posted by

on

in category