Cuando desarrollo complementos, los pruebo en varias versiones de WordPress al vincular mi directorio de complementos en los diferentes wp-content
directorios. Esto es genial ya que solo tengo que editar los archivos una vez, pero rompe una construcción importante para generar referencias a los recursos en mi complemento: se __FILE__
refiere a la ubicación física del complemento, no a la que está dentro wp-content
. ¿Cómo debería resolver esto?
La estructura de mi directorio se ve así:
/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
como un enlace simbólico al complemento anterior
3.1-multi-dir/
wp-content/
plugins/
monkeyman-rewrite-analyzer
como un enlace simbólico al complemento anterior
3.1-multi-domain/
wp-content/
plugins/
monkeyman-rewrite-analyzer
como un enlace simbólico al complemento anterior
Si quiero poner en cola el archivo Javascript, debería usarlo plugins_url( 'monkeyman-rewrite-analyzer.js', [base file] )
, pero usarlo __FILE__
aquí no funcionará, porque la ruta real del archivo será /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
, por lo que WordPress no puede quitar la primera parte y generar una URL relativa a la instalación de WordPress.
WP_PLUGIN_URL
no se recomienda el uso porque los administradores deberían poder cambiar el nombre del directorio de este complemento específico, pero ¿hay alguna otra razón para evitarlo? Y, de hecho, su boleto sería una solución simple.