Quando sviluppo plug-in, li collaudo su più versioni di WordPress collegando simbolicamente la mia directory di plug-in nelle diverse wp-contentdirectory. 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.phpjs/monkeyman-rewrite-analyzer.js
versions/3.1/wp-content/plugins/monkeyman-rewrite-analyzercome link simbolico al plugin sopra
3.1-multi-dir/wp-content/plugins/monkeyman-rewrite-analyzercome link simbolico al plugin sopra
3.1-multi-domain/wp-content/plugins/monkeyman-rewrite-analyzercome 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_URLnon 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.