我使用的是Wordpress,它附带了一个内置的jQuery库。当我安装插件时,另一个版本会进入。我学会编写自己的代码,教程要求我安装另一个版本!
在撰写本文时,我可能安装了4-5个版本的jQuery库!
这太疯狂了!而且我认为我不需要那么多,我只需要谷歌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');
如何修复它并摆脱所有其他不必要的版本?
答案 0 :(得分:2)
首先,尝试优先考虑你的钩子,例如:
add_action( 'wp_enqueue_scripts', 'mytheme_jquery_enqueue', 99999 );
这样,它将是最新的,除非某个插件的优先级为9999999
... it's a horse race ...
然后,Enqueuing jQuery in plug-ins
如果您的代码(或主题代码)取消注册jQuery和 从其他位置(Google)重新注册,您需要添加此项 某处:
jQuery.noConflict();
这使得jQuery与其他脚本合作 (即Prototype)尝试全局定义$变量。 WordPress的 有这条线捆绑到他们的版本,谷歌没有。
但是,比自己排队CDN更好,建议使用这个插件:Use Google Libraries。根据核心开发人员的说法:
请不要使用该方法来包含Google的jQuery脚本。以上操作不起作用,将导致与其他脚本冲突,以及其他问题。如果您想使用Google托管版本的库,请使用“使用Google库”插件。这个插件做得很好,经常更新。上面的方法只会表面上看,它会引起问题。 - Otto Jul 29 '12 at 15:57
然后,我们遇到的问题是加载其他jQuery库并使用与WordPress捆绑的库是真的not recommended。在这种情况下,您应该使用remove_action
,wp_deregister_script
或wp_dequeue_script
来阻止所有这些插件或主题加载其版本。
Don’t Dequeue WordPress’ jQuery
作为WordPress Stack Exchange的主持人,我最终花了一个 很多时间在网站上。我看到很多很棒的问题 不那么好的问题,还有几个你开玩笑的我 的问题。但我最常看到的问题是让我感到沮丧:
如何删除WordPress的jQuery并改用Google的CDN版本?
我毫不费力地说,如果你问这个问题,你 首先没有建立网站的业务。