由于WordPress自带jQuery版本非常早了(1.x版本),因此一些函数引用的jQuery版本过低。而实际情况下我们会需要使用更高版本的jQuery,但是直接添加新版本的jQuery又会造成版本冲突。很多朋友可能去搜索jQuery版本冲突的解决方法,但是实际上在使用WordPress的过程中有更好的方法。那么我们要如果正确的更新WordPress自带的jQuery版本呢又不造成冲突呢?

我们的解决方法是通过修改主题functions.php(或WordPress子主题的functions.php中)来重新注册wordpress库中的jQuery和jQuery-Migrate:

function update_jquery() {
     if( !is_admin()){
         wp_deregister_script('jquery'); //注销自带的jquery
         wp_register_script('jquery', "https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js", false, null);
         wp_enqueue_script('jquery');
         wp_deregister_script('jquery-migrate'); //注销自带的jquery-migrate
         wp_register_script('jquery-migrate', "https://cdn.bootcss.com/jquery-migrate/3.0.0/jquery-migrate.min.js", false, null);
         wp_enqueue_script('jquery-migrate');
     }
 }
 add_action("wp_enqueue_scripts", "update_jquery", 11);

另外这边要说一下jQuery-Migrate这个东西,他是用于让低版本jQuery兼容高版本。Wordpress自带版本貌似是jquer-migrate-1.x。有些情况下,我们不想用这个东东。就用wp_dequeue_script('jquery-migrate'); 去掉它。

这里有个提示:有些插件如 wpDiscuz使用jquery库的jQuery对象 而不是新版本的$对象,而且wpDiscuz需要主题使用wp_head() 函数来启用某些必要的钩子。具体哪些还需测试。

文章主要参考自:爱鱼客