测试以查看jQuery或原型是否由另一个插件排队?
-
16-10-2019 - |
题
在我的插件中,我想测试以查看jQuery或Prototype(或两者)是否将由另一个插件加载。所以,有 wp_enqueue_script('jquery')
或者 wp_enqueue_script('prototype')
已经被称为。
我有适合文件中的插件的代码 plugin.prototype.js
和 plugin.jquery.js
如果排队的原型,我的插件将使用 plugin.prototype.js
. 。这样,我避免将超过必要的加载到网站上。如果没有加载,我将排队排队。
我如何测试以查看已排队的内容?如何确保我的代码最后运行?
解决方案
利用 wp_script_is()
检查脚本是否在队列中。
function add_my_scripts() {
$doing_jquery = wp_script_is('jquery', 'queue');
$doing_prototype = wp_script_is('prototype', 'queue');
var_dump($doing_jquery, $doing_prototype);
}
add_action('wp_print_scripts', 'add_my_scripts');
其他提示
要确保在加载jQuery或原型后运行代码,请使用 $deps
参数为 wp_enqueue_script
, ,通过 array('jquery')
或者 array('prototype')
. 。如果您想知道脚本是否在队列中,则可以使用 这 query()
的方法 WP_Dependencies
(这是 WP_Scripts
)。因此,这样的事情应该起作用:
global $wp_scripts;
$jQueryIsLoaded = (bool) $wp_scripts->query('jquery');
$prototypeIsLoaded = (bool) $wp_scripts->query('prototype');
当然,插件可以在您决定之后加入它们,因此请尝试确保在最后可能的时刻执行此检查。