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.com/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');
EDIT: this solution is not a best-practice. Please use the solution submitted by Nathan below!
Use the
WPMU_PLUGIN_DIR
andWPMU_PLUGIN_URL
constants 🙂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:
It is not good practice to use constants. For this functionality one should ALWAYS use the
plugins_url()
function seen here in the codex.When using
plugins_url()
outside of an mu-plugin, you need to specify the full path to the plugin that is in themu-plugins
directory. For example, when using it in a theme’sfunctions.php
file.Below is a correct working version, where the second parameter of
plugins_url()
is a full path to the plugin in themu-plugins
directory.Please see the codex for more info.