Quando desenvolvo plugins, eu os testo em várias versões do WordPress, associando o diretório do meu plugin nos diferentes wp-contentdiretórios. Isso é ótimo, pois só preciso editar os arquivos uma vez, mas quebra uma construção importante para gerar referências aos recursos no meu plug-in: __FILE__refere-se ao local do plug-in físico, não ao local wp-content. Como devo resolver isso?
Minha estrutura de diretórios é assim:
/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-analyzercomo um link simbólico para o plug-in acima
3.1-multi-dir/wp-content/plugins/monkeyman-rewrite-analyzercomo um link simbólico para o plug-in acima
3.1-multi-domain/wp-content/plugins/monkeyman-rewrite-analyzercomo um link simbólico para o plug-in acima
Se eu quiser enfileirar o arquivo Javascript, eu deveria usar plugins_url( 'monkeyman-rewrite-analyzer.js', [base file] ), mas usando __FILE__aqui não vai funcionar, porque o caminho do arquivo real será /path/to/wordpress/development/dir/plugin-development/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php, não /path/to/wordpress/development/dir/versions/*/wp-content/plugins/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php, de modo WordPress não pode tirar a primeira parte para fora e gerar uma URL relativa à instalação do WordPress.
WP_PLUGIN_URLnão é recomendado porque os administradores devem ter permissão para alterar o nome do diretório deste plug-in específico, mas há outro motivo para evitá-lo? E, de fato, seu ingresso seria uma solução simples.