¿Se puede utilizar la URL de wp-plugins (debe usar complementos) en functions.php?

2

¿Se puede usar la URL de wp-plugins (Must Use Plugins) en el archivo functions.php? Tengo un archivo mu-functions.php en la carpeta mu-plugins. Una función llama a un archivo javascript ( alerts.js ) ubicado en example.com/wp-content/mu-plugins/js/ . ¿Cómo puedo orientar la carpeta de los complementos de mu en mi función?

Actualmente, estoy usando get_site_url() . '/wp-content/mu-plugins/js/alerts.js',

Aunque no es completamente relevante para la pregunta, esta es la función completa que se usa para llamar al archivo javascript:

function load_my_alerts(){
      wp_register_script( 
        'my_alerts', 
        get_site_url() . '/wp-content/mu-plugins/js/alerts.js', 
        array( 'jquery' )
    );
    wp_enqueue_script( 'my_alerts' );
}
add_action('admin_enqueue_scripts', 'load_my_alerts');
    
pregunta Travis Pflanz 07.01.2013 - 23:50

4 respuestas

3

EDITAR: esta solución no es una buena práctica. Utilice la solución presentada por Nathan a continuación:

Utilice las constantes WPMU_PLUGIN_DIR y WPMU_PLUGIN_URL :)

function load_my_alerts(){
    wp_register_script( 
        'my_alerts', 
        WPMU_PLUGIN_URL . '/js/alerts.js', 
        array( 'jquery' )
    );
    wp_enqueue_script( 'my_alerts' );
}
add_action('admin_enqueue_scripts', 'load_my_alerts');
    
respondido por el bosco 08.01.2013 - 00:18
2

Para tu información, el ejemplo de Nathan solo funciona para complementos regulares, no para "Deben usar complementos". Para que funcione con los complementos de MU, debe pasar el archivo de invocación:

plugins_url('/path/to/whatever', __FILE__)
    
respondido por el DarkNeuron 10.03.2016 - 15:03
1

No es una buena práctica usar constantes. Para esta funcionalidad, SIEMPRE se debe usar la función plugins_url() vista aquí en el códice .

    function load_my_alerts(){

        wp_register_script(
            'my_alerts',
            plugins_url('js/alerts.js'),
            array( 'jquery' )
        );

        wp_enqueue_script( 'my_alerts' );

    }

    add_action('admin_enqueue_scripts', 'load_my_alerts');
    
respondido por el Nathan Powell 15.06.2015 - 21:02
0

Al usar plugins_url() fuera de un complemento de mu, debe especificar la ruta completa al complemento que se encuentra en el directorio mu-plugins . Por ejemplo, cuando se usa en el archivo functions.php de un tema.

A continuación se muestra una versión de trabajo correcta, donde el segundo parámetro de plugins_url() es una ruta completa al complemento en el directorio mu-plugins .

Consulte el códice para obtener más información.

function load_my_plugin_script(){

    wp_register_script(
        'my_plugin_script',
        plugins_url('my_plugin.js', '/wp/wp-content/mu-plugins/my_plugin')
    );

    wp_enqueue_script( 'my_plugin_script' );

}

add_action('admin_enqueue_scripts', 'load_my_plugin_script');
    
respondido por el shahar 27.11.2018 - 07:49

Lea otras preguntas en las etiquetas