是否有某种方法可以获取已排队的每个脚本的$ 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' );
#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
也无法提供如上所示的完整句柄列表,如果那是您的话。再之后。而且不可能总是依靠分组的依赖项来获取它们。
评论
从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