是否有某种方法可以获取已排队的每个脚本的$ handle?
是否有一些数组可以容纳所有句柄,以便我可以遍历它并使用每个$ handle进行操作? br />

#1 楼

$wp_scripts全局保存所有脚本数据:

function wpa54064_inspect_scripts() {
    global $wp_scripts;
    foreach( $wp_scripts->queue as $handle ) :
        echo $handle;
    endforeach;
}
add_action( 'wp_print_scripts', 'wpa54064_inspect_scripts' );


评论


从WP 4.2.0开始-$ wp_scripts = wp_scripts();可能比直接访问全局更好,因为如果未设置,它将初始化$ wp_scripts。

– jgraup
16年8月30日14:33



您应该添加优先级9999,如add_action('wp_print_scripts',wpa54064_inspect_scripts',9999);,否则您将看到被functions.php文件出队的脚本。

– RyszardJędraszyk
19年4月6日在14:43

#2 楼


是否可以通过某种方式获取已排队的每个脚本的$ handle?


您可以尝试在特定的钩子上检查$wp_scripts->queue,但不会给您一个提示。信不信由你,WordPress使用的所有句柄列表。

例如,您可以挂钩进入wp_head,它运行wp_print_scripts操作,以获取WP中二十七个主题的$handles的列表。 v4.7.5:

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

add_action( 'wp_head', 'get_enqueued_scripts' );


$handles中的$wp_scripts->groups列表将输出:



一点,如果您要比较$wp_scripts->queue中存在的内容,您只会看到上面的一个子集。因此,即使wp_print_scripts也无法提供如上所示的完整句柄列表,如果那是您的话。再之后。而且不可能总是依靠分组的依赖项来获取它们。