Wenn ich Plugins entwickle, teste ich sie auf mehreren Versionen von WordPress, indem ich mein Plugin-Verzeichnis mit den verschiedenen wp-contentVerzeichnissen verbinde. Das ist großartig, da ich die Dateien nur einmal bearbeiten muss, aber es bricht ein wichtiges Konstrukt ab, um Verweise auf Ressourcen in meinem Plugin zu generieren: __FILE__Bezieht sich auf den physischen Speicherort des Plugins, nicht auf den in wp-content. Wie soll ich das lösen?
Meine Verzeichnisstruktur sieht folgendermaßen aus:
/path/to/wordpress/development/dir/plugin-development/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.phpjs/monkeyman-rewrite-analyzer.js
versions/3.1/wp-content/plugins/monkeyman-rewrite-analyzerals Symlink zum obigen Plugin
3.1-multi-dir/wp-content/plugins/monkeyman-rewrite-analyzerals Symlink zum obigen Plugin
3.1-multi-domain/wp-content/plugins/monkeyman-rewrite-analyzerals Symlink zum obigen Plugin
Wenn ich die Javascript-Datei in die Warteschlange stellen möchte, sollte ich sie verwenden plugins_url( 'monkeyman-rewrite-analyzer.js', [base file] ), aber die Verwendung __FILE__hier funktioniert nicht, da der tatsächliche Dateipfad /path/to/wordpress/development/dir/plugin-development/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.phpnicht /path/to/wordpress/development/dir/versions/*/wp-content/plugins/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.phpso ist, dass WordPress den ersten Teil nicht entfernen und eine URL relativ zur WordPress-Installation generieren kann.
WP_PLUGIN_URLwird nicht empfohlen, da Administratoren den Namen dieses bestimmten Plugin-Verzeichnisses ändern dürfen. Gibt es jedoch auch einen anderen Grund, dies zu vermeiden? Und in der Tat wäre Ihr Ticket eine einfache Lösung.