Quando sviluppo plug-in, li collaudo su più versioni di WordPress collegando simbolicamente la mia directory di plug-in nelle diverse wp-content
directory. Questo è fantastico poiché devo modificare i file solo una volta, ma rompe un costrutto importante per generare riferimenti alle risorse nel mio plugin: si __FILE__
riferisce alla posizione fisica del plugin, non a quella in wp-content
. Come dovrei risolverlo?
La mia struttura di directory è simile alla seguente:
/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
come link simbolico al plugin sopra
3.1-multi-dir/
wp-content/
plugins/
monkeyman-rewrite-analyzer
come link simbolico al plugin sopra
3.1-multi-domain/
wp-content/
plugins/
monkeyman-rewrite-analyzer
come link simbolico al plugin sopra
Se voglio accodare il file Javascript, dovrei usare plugins_url( 'monkeyman-rewrite-analyzer.js', [base file] )
, ma l'uso __FILE__
qui non funzionerà, perché il percorso del file effettivo sarà /path/to/wordpress/development/dir/plugin-development/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php
, no /path/to/wordpress/development/dir/versions/*/wp-content/plugins/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php
, quindi WordPress non può eliminare la prima parte e generare un URL relativo all'installazione di WordPress.
WP_PLUGIN_URL
non sia raccomandato perché agli amministratori dovrebbe essere permesso di cambiare il nome della directory di questo specifico plugin, ma c'è anche un altro motivo per evitarlo? E infatti, il tuo biglietto sarebbe una soluzione semplice.