In my WordPress plugin I try to include two scripts in the page footer, like so:
function my_interface_enqueues() {
wp_enqueue_script( 'require-js', plugin_dir_url( __FILE__ ) . 'js/libs/requirejs/require.js', array(), false, true );
wp_enqueue_script( 'main-js', plugin_dir_url( __FILE__ ) . 'js/main.js', array(), false, true );
}
Yet when I check the rendered page, the scripts are inside the <head>
, despite the 5th parameter being set true
. What could cause this?
WordPress version is 4.7.3
Use the approach below to enqueue your scripts using a single action hook:
/**
* Proper way to enqueue scripts.
* The same approach can be used to enqueue styles.
*/
function my_interface_enqueues() {
wp_enqueue_script( 'require-js', plugin_dir_url( __FILE__ ) . 'js/libs/requirejs/require.js', array(), '1.0.0', true );
wp_enqueue_script( 'main-js', plugin_dir_url( __FILE__ ) . 'js/main.js', array(), '1.0.0', true );
// Here, a sample stylesheet enqueued.
wp_enqueue_style( 'style-name', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'my_interface_enqueues' );
That should definitely work.