web-dev-qa-db-ja.com

テーマからプラグインディレクトリを取得する

誰もがテーマのfunctions.phpの中からプラグインのディレクトリパスを取得するためのハックではない方法を知っていますか?

私はplugin_dir_path( _ file _ )を使いましたが、テーマのfunctions.phpで呼ばれているので、そのファイルへのパスを返します。 pluginsディレクトリではありません。文字列を操作してプラグインのパスを追加することもできますが、これはパス全体をハードコーディングするのと同じくらい悪い感じです。

私はそれを使って働いています:

require_once( ABSPATH .'/wp-content/plugins/ehu-events/event-widget.php' );

しかし、私はそれが非常に古くて間違っていることを知っています、そして、私はそれを使うためにおそらくワードプレスコミュニティから避けられているでしょう!

これに使用できる標準のワードプレス機能はありますか?

8
danbrown

たぶんあなたが探しているのは、

WP_PLUGIN_DIR  // full path, no trailing slash
WP_PLUGIN_URL  // full url, no trailing slash

ドキュメント を参照

17
JMau

私はこれが定数に依存するより信頼性が高いかもしれないと思います。

$url = plugins_url();
$path = parse_url($url);
var_dump($path['path']);

もっと信頼できると思うのは、 plugins_url関数WPMU_PLUGIN_URLWP_PLUGIN_URLの両方の定数を考慮し、 plugins_url フィルタも尊重するからです。

7
s_ha_dum