誰もがテーマのfunctions.phpの中からプラグインのディレクトリパスを取得するためのハックではない方法を知っていますか?
私はplugin_dir_path( _ file _ )を使いましたが、テーマのfunctions.phpで呼ばれているので、そのファイルへのパスを返します。 pluginsディレクトリではありません。文字列を操作してプラグインのパスを追加することもできますが、これはパス全体をハードコーディングするのと同じくらい悪い感じです。
私はそれを使って働いています:
require_once( ABSPATH .'/wp-content/plugins/ehu-events/event-widget.php' );
しかし、私はそれが非常に古くて間違っていることを知っています、そして、私はそれを使うためにおそらくワードプレスコミュニティから避けられているでしょう!
これに使用できる標準のワードプレス機能はありますか?
たぶんあなたが探しているのは、
WP_PLUGIN_DIR // full path, no trailing slash
WP_PLUGIN_URL // full url, no trailing slash
ドキュメント を参照
私はこれが定数に依存するより信頼性が高いかもしれないと思います。
$url = plugins_url();
$path = parse_url($url);
var_dump($path['path']);
もっと信頼できると思うのは、 plugins_url
関数 がWPMU_PLUGIN_URL
とWP_PLUGIN_URL
の両方の定数を考慮し、 plugins_url
フィルタも尊重するからです。