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


8

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

plugin_dir_path(FILE)を使用しましたが、テーマのfunctions.phpで呼び出されているため、そのファイルへのパスを返します。プラグインディレクトリではありません。文字列を操作してプラグインパスを追加することもできますが、パス全体をハードコーディングするのとほとんど同じように感じません。

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

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

しかし、私はそれがとても古風で間違っていることを知っており、おそらくそれを使用するためにワードプレスコミュニティから敬遠されるでしょう!

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

回答:


18

多分あなたが探しているのは:

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

ドキュメントを見る


1
場所を別の場所に移動する可能性のあるフィルターがあることに注意してください。これは最善の策かもしれませんが、それは確かに保存の前提ではありません。
カイザー2013年

2
リンクされたドキュメントでは、定数について次のように述べています。したがって、アドバイスがテーマでそれらを使用しないことである場合、それはおそらくソリューションとして提案されるべきではありません。
Gchtr 2018年

8

これは定数に依存するよりも信頼できると思います。

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

私はそれがより信頼性が高い疑う理由があることであるplugins_url関数が両方考慮WPMU_PLUGIN_URLしてWP_PLUGIN_URL定数をしても尊重しますplugins_urlフィルタを。


1
これは最もハッキングされていない方法であり、最良の答えになるはずです。
CGeorges 2016年

テーマに含まれるプラグインはどうですか?
brett
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.