关于“wp_deregister_script()”的问题

时间:2013-07-17 作者:Derfder

我是否应该总是注销脚本?

现在我使用的是:

add_action(\'wp_enqueue_scripts\', \'js_jqTransform\', 20);
function js_jqTransform() {
    wp_register_script(\'jqTransform\', get_template_directory_uri() . \'/js/jqtransform/jqtransformplugin/jquery.jqtransform.js\', false, null);
    wp_enqueue_script(\'jqTransform\');
}
我关心的是我是否应该这样使用它:

add_action(\'wp_enqueue_scripts\', \'js_jqTransform\', 20);
function js_jqTransform() {
    wp_deregister_script(\'jqTransform\');
    wp_register_script(\'jqTransform\', get_template_directory_uri() . \'/js/jqtransform/jqtransformplugin/jquery.jqtransform.js\', false, null);
    wp_enqueue_script(\'jqTransform\');
}
如果我应该使用always deregister,那为什么呢?

因为我注意到一些开发人员在前端使用类似的东西:

if (!is_admin()) add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11);
function my_jquery_enqueue() {

    // JQuery
    wp_deregister_script(\'jquery\');
    wp_register_script(\'jquery\', "http" . ($_SERVER[\'SERVER_PORT\'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js", false, null);
    wp_enqueue_script(\'jquery\');

}
这背后的原因是什么?

2 个回复
最合适的回答,由SO网友:Fränk 整理而成

这背后的原因是这些开发人员做错了。永远不要注销jQuery的核心版本,并且here is why.

然而,wp\\u deregister\\u脚本有它的位置,例如,当您想取消激活脚本或将自己的脚本排队时,在子主题中。

SO网友:Johannes Pille

您的第一个片段很好。无需修改。

您遇到的最后一种情况是,jQuery默认情况下与WordPress捆绑在一起,并由core注册
如果首先不一定推荐使用jQuery的外部源,那么必须先取消注册另一个版本。

结束