In der WordPress-Dokumentation zum Ermitteln von Plugin- und Inhaltsverzeichnissen heißt es:
WordPress verwendet die folgenden Konstanten, um den Pfad zu den Inhalts- und Plugin-Verzeichnissen zu bestimmen. Diese sollten nicht direkt von Plugins oder Themes verwendet werden. Der Vollständigkeit halber werden sie hier aufgeführt.
Es folgt eine Liste WP_CONTENT_DIR
und eine Liste der WP_PLUGIN_DIR
Konstanten, die Theme- und Plugin-Entwickler nicht verwenden sollten, vermutlich aus folgendem Grund:
Mit WordPress können Benutzer ihr WP-Inhaltsverzeichnis an einer beliebigen Stelle platzieren. Sie dürfen also niemals davon ausgehen, dass sich Plugins in WP-Inhalten / Plugins befinden oder dass sich Uploads in WP-Inhalten / Uploads befinden oder dass sich Themen in WP-Inhalten / Uploads befinden. Inhalt / Themen.
Mark Jaquith bemerkt hier auch, dass diese Konstanten nicht verwendet werden sollten:
Verwenden Sie nicht WP_PLUGIN_URL oder WP_PLUGIN_DIR - Plugins befinden sich möglicherweise nicht im Plugins-Verzeichnis.
Was ist die akzeptierte Methode, um den vollständigen Pfad zu den Ordnern für Plugins, WP-Inhalte und Designs zu referenzieren, ohne diese Konstanten zu verwenden?
Als einfaches Beispiel, um den vollständigen Pfad aller installierten Plugins auszugeben, kann ich dies tun:
<?php
$plugins = get_plugins();
foreach ($plugins as $file => $details) {
echo WP_PLUGIN_DIR . '/' . $file . '<br>';
}
Was ergibt eine Liste wie folgt:
/var/www/wp-content/plugins/akismet/akismet.php
/var/www/wp-content/plugins/debug-bar/debug-bar.php
/var/www/wp-content/plugins/hello.php
(Ich möchte dies möglicherweise tun, wenn ich ein Plugin geschrieben habe, damit der Benutzer Plugins zum Beispiel als Teil einer Site-Sicherung selektiv archivieren kann.)
Wenn die Verwendung WP_PLUGIN_DIR
falsch ist, welche Alternative wird empfohlen? Es gibt keine Entsprechung wp_upload_dir()
für den Ordner plugins, themes und wp-content, den ich finden kann, was das Verweisen auf die möglicherweise umherirrenden Themes und Plugins-Stammverzeichnisse problematisch macht.
WP_PLUGIN_DIR
, daher meine Frage hier.