3

我正在使用 Wordpress,它带有一个内置的 jQuery 库。当我安装一个插件时,另一个版本会进入。我学习编写自己的代码,教程要求我安装另一个!

在撰写本文时,我可能已经安装了 4-5 个版本的 jQuery 库!

快疯了!而且我认为我不需要那么多,我只需要来自 google CDN 的最新版本以获得最佳性能,所以我将这一行放在我的 php 文件中,但即使在我清除缓存后它似乎也没有出现在任何地方.

function mytheme_jquery_enqueue(){
    if(!is_admin()){
        wp_deregister_script('jquery');
        wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js", false, null);
        wp_enqueue_script('jquery');  
    }
}
add_action('wp_enqueue_scripts', 'mytheme_jquery_enqueue');   

如何修复它并摆脱所有其他不必要的版本?

4

1 回答 1

2

首先,尝试给你的钩子一个较低的优先级,例如:

add_action( 'wp_enqueue_scripts', 'mytheme_jquery_enqueue', 99999 ); 

这样,它将是最新运行的,除非某些插件的优先级为9999999......这是一场赛马......


然后,在插件中加入 jQuery

如果您的代码(或主题的代码)正在注销 jQuery 并从另一个位置(Google)重新注册它,您需要在某处添加:

jQuery.noConflict(); 

这使得 jQuery 与尝试全局定义 $ 变量的其他脚本(即 Prototype)合作。WordPress 将这一行捆绑到他们的版本中,谷歌没有。


但是,比自己排队 CDN 更好,建议使用这个插件:使用谷歌图书馆。根据核心开发人员的说法:

请不要使用该方法包含来自 Google 的 jQuery 脚本。以上不起作用,并且会导致与其他脚本的冲突以及其他问题。如果您想使用 Google 托管版本的库,请改用“使用 Google 库”插件。这个插件做得对,并且经常更新。上面的方法只是表面上起作用,它会导致问题。–奥托 2012 年 7 月 29 日在 15:57


然后,我们遇到的问题是,真的不建议加载其他 jQuery 库并使用与 WordPress 捆绑的那个。在这种情况下,您应该使用remove_action,wp_deregister_scriptwp_dequeue_script来阻止所有这些插件或主题加载它们的版本。

不要让 WordPress 的 jQuery 出队

作为WordPress Stack Exchange的版主,我最终在该网站上花费了大量时间。我看到了很多很棒的问题,很多不太好的问题,还有几个你要开个玩笑的问题。但我最常看到的问题让我感到沮丧:

如何删除 WordPress 的 jQuery 并改用 Google 的 CDN 版本?

我可以毫不费力地说,如果您问这个问题,那么您首先没有建立网站的业务。

于 2013-02-09T21:32:46.740 回答