Lorsque je développe des plugins, je les teste sur plusieurs versions de WordPress en créant un lien symbolique vers mon répertoire de plugins dans les différents wp-content
répertoires. C'est génial car je n'ai à modifier les fichiers qu'une seule fois, mais cela casse une construction importante pour générer des références aux ressources dans mon plugin: __FILE__
fait référence à l'emplacement physique du plugin, pas celui de wp-content
. Comment dois-je résoudre ce problème?
Ma structure de répertoire ressemble à ceci:
/path/to/wordpress/development/dir/
plugin-development/
monkeyman-rewrite-analyzer/
monkeyman-rewrite-analyzer.php
js/
monkeyman-rewrite-analyzer.js
versions/
3.1/
wp-content/
plugins/
monkeyman-rewrite-analyzer
comme lien symbolique vers le plugin ci-dessus
3.1-multi-dir/
wp-content/
plugins/
monkeyman-rewrite-analyzer
comme lien symbolique vers le plugin ci-dessus
3.1-multi-domain/
wp-content/
plugins/
monkeyman-rewrite-analyzer
comme lien symbolique vers le plugin ci-dessus
Si je veux mettre le fichier Javascript en file d'attente, je devrais utiliser plugins_url( 'monkeyman-rewrite-analyzer.js', [base file] )
, mais l'utilisation __FILE__
ici ne fonctionnera pas, car le chemin d'accès au fichier sera /path/to/wordpress/development/dir/plugin-development/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php
, non /path/to/wordpress/development/dir/versions/*/wp-content/plugins/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php
, donc WordPress ne peut pas supprimer la première partie et générer une URL relative à l'installation de WordPress.
WP_PLUGIN_URL
n'est pas recommandée car les administrateurs devraient être autorisés à changer le nom du répertoire de ce plugin spécifique, mais y a-t-il également une autre raison de l'éviter? Et en effet, votre ticket serait une solution simple.