Holen Sie sich das Plugin-Verzeichnis von einem Thema

8

Kennt jemand eine nicht hackige Methode, um den Plugin-Verzeichnispfad aus der Datei functions.php eines Themas abzurufen?

Ich habe plugin_dir_path ( FILE ) verwendet, aber da es in der functions.php des Themas aufgerufen wird, gibt es den Pfad zu dieser Datei zurück. Nicht das Plugins-Verzeichnis. Ich könnte einen String manipulieren und den Plugins-Pfad hinzufügen, aber das fühlt sich fast so schlecht an, als würde man den gesamten Pfad hartcodieren.

Ich habe es zum Laufen gebracht mit:

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

Aber ich weiß, dass das so altmodisch und falsch ist und ich würde wahrscheinlich von der WordPress-Community gemieden werden, wenn ich es benutze!

Gibt es eine Standard-WordPress-Funktion, die ich dafür verwenden kann?

Dan Brown
quelle

Antworten:

18

Vielleicht suchen Sie:

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

Siehe Dokumentation

JMau
quelle
1
Beachten Sie, dass es Filter gibt, die den Standort möglicherweise an einen anderen Ort verschieben. Dies ist vielleicht die beste Wahl, aber es ist sicherlich keine sichere Annahme.
Kaiser
2
In der verlinkten Dokumentation heißt es zu den Konstanten: «Diese sollten nicht direkt von Plugins oder Themes verwendet werden, sondern sind der Vollständigkeit halber hier aufgeführt.» Daher sollte es wahrscheinlich nicht als Lösung vorgeschlagen werden, wenn der Rat lautet, sie nicht in Ihrem Thema zu verwenden.
Gchtr
8

Ich glaube, dies ist möglicherweise zuverlässiger als abhängig von den Konstanten.

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

Der Grund, warum ich vermute, dass es zuverlässiger ist, ist, dass die plugins_urlFunktion sowohl die WPMU_PLUGIN_URLals auch die WP_PLUGIN_URLKonstanten berücksichtigt und auch den plugins_urlFilter berücksichtigt .

s_ha_dum
quelle
1
Dies ist die am wenigsten hackige Methode und sollte die beste Antwort sein.
CGeorges
Was ist mit Plugins in Themes?
Brett