$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>Can the wp-plugins (Must Use Plugins) URL be targeted for use in functions.php?|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

Can the wp-plugins (Must Use Plugins) URL be targeted for use in functions.php?

matteradmin7PV0评论

Can the wp-plugins (Must Use Plugins) URL be targeted for use in functions.php? I have a mu-functions.php file in the mu-plugins folder. One function calls a javascript file (alerts.js) located in example/wp-content/mu-plugins/js/. How can I target the mu-plugins folder in my function?

Currently, I am using get_site_url() . '/wp-content/mu-plugins/js/alerts.js',

Although not completely relevant to the question, this is the complete function used to call the javascript file:

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');

Can the wp-plugins (Must Use Plugins) URL be targeted for use in functions.php? I have a mu-functions.php file in the mu-plugins folder. One function calls a javascript file (alerts.js) located in example/wp-content/mu-plugins/js/. How can I target the mu-plugins folder in my function?

Currently, I am using get_site_url() . '/wp-content/mu-plugins/js/alerts.js',

Although not completely relevant to the question, this is the complete function used to call the javascript file:

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');
Share Improve this question asked Jan 7, 2013 at 22:50 Travis PflanzTravis Pflanz 1,9535 gold badges31 silver badges57 bronze badges
Add a comment  | 

4 Answers 4

Reset to default 3

EDIT: this solution is not a best-practice. Please use the solution submitted by Nathan below!

Use the WPMU_PLUGIN_DIR and WPMU_PLUGIN_URL constants :)

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');

FYI, Nathan's example only works for regular plugins, not "Must Use Plugins". To make it work for MU plugins, you need to pass the invoking file:

plugins_url('/path/to/whatever', __FILE__)

It is not good practice to use constants. For this functionality one should ALWAYS use the plugins_url() function seen here in the codex.

    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');

When using plugins_url() outside of an mu-plugin, you need to specify the full path to the plugin that is in the mu-plugins directory. For example, when using it in a theme's functions.php file.

Below is a correct working version, where the second parameter of plugins_url() is a full path to the plugin in the mu-plugins directory.

Please see the codex for more info.

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');
Post a comment

comment list (0)

  1. No comments so far