每个人都在我的网站上安装jQuery库

时间:2013-02-09 16:18:43

标签: jquery wordpress

我使用的是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');   

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

1 个答案:

答案 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_actionwp_deregister_scriptwp_dequeue_script来阻止所有这些插件或主题加载其版本。

  

Don’t Dequeue WordPress’ jQuery

     

作为WordPress Stack Exchange的主持人,我最终花了一个   很多时间在网站上。我看到很多很棒的问题   不那么好的问题,还有几个你开玩笑的我   的问题。但我最常看到的问题是让我感到沮丧:

     
    

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

  
     

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