How do I get the $handle for all enqueued scripts?

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?

Related posts

Leave a Reply

2 comments

  1. 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' );
    
  2. 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.