plugin-development – ¿Complementos en directorios con enlaces simbólicos?

Pregunta:

Cuando desarrollo complementos, los pruebo en varias versiones de WordPress mediante el enlace simbólico de mi directorio de complementos en los diferentes directorios de wp-content . Esto es genial ya que solo tengo que editar los archivos una vez, pero rompe una construcción importante para generar referencias a recursos en mi complemento: __FILE__ refiere a la ubicación física del complemento, no a la de wp-content . ¿Cómo debo solucionar esto?

Mi estructura de 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 enlace simbólico al complemento anterior
      • 3.1-multi-dir/
        • wp-content/
          • plugins/
            • monkeyman-rewrite-analyzer como enlace simbólico al complemento anterior
      • 3.1-multi-domain/
        • wp-content/
          • plugins/
            • monkeyman-rewrite-analyzer como enlace simbólico al complemento anterior

Si quiero poner en cola el archivo Javascript, debería usar plugins_url( 'monkeyman-rewrite-analyzer.js', [base file] ) , pero usar __FILE__ aquí no funcionará, porque la ruta del archivo real 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 eliminar la primera parte y generar una URL relativa a la instalación de WordPress.

Respuesta:

El problema se puede solucionar parcialmente con un complemento obligatorio que se conecta al filtro plugins_url .

No manejará todos los demás casos en los que se plugin_basename() , como register_activation_hook() y co.

Más información: http://core.trac.wordpress.org/ticket/16953

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım