wp_enqueue_script fails to include in footer

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

1 Answer
1

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.

Leave a Comment