Is there some way to get the $handle for each script that has been enqueued?

Is there some array that holds all the handles so that I can loop through it and do something using each $handle?

up vote 22 down vote accepted

the $wp_scripts global holds all the script data:

function wpa54064_inspect_scripts() {
    global $wp_scripts;
    foreach( $wp_scripts->queue as $handle ) :
        echo $handle;
    endforeach;
}
add_action( 'wp_print_scripts', 'wpa54064_inspect_scripts' );
  • 5
    As of WP 4.2.0 - $wp_scripts = wp_scripts(); might be better than accessing the global directly since it will initialize $wp_scripts if it has not been set. – jgraup Aug 30 '16 at 14:33

Is there some way to get the $handle for each script that has been enqueued?

You could try inspecting $wp_scripts->queue at a specific hook but it won't give you a list of all handles used by WordPress, believe it or not.

For example, you could hook into wp_head, which runs the wp_print_scripts action, to get a list of $handles for the stock Twenty Seventeen theme in WP v4.7.5:

function get_enqueued_scripts () {
    $scripts = wp_scripts();
    var_dump( array_keys( $scripts->groups ) );
}

add_action( 'wp_head', 'get_enqueued_scripts' );

And the list of $handles from $wp_scripts->groups will output:

enter image description here

At this point, if you were to compare what exists in $wp_scripts->queue you will only see a subset of the above.

Therefore, even wp_print_scripts will not provide a full list of handles as shown above, if that's what you're after. And it's not possible to always rely on grouped dependencies to get them either.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.