联合创作人招募中!
微信联系:yulone

更新WordPress自带的jQuery版本

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

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

function update_jquery() {
     if( !is_admin()){
         wp_deregister_script('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');
         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。有些情况下,我们不想用这个东东。来自美国德州的网站设计团队Blazer Six发布了一款名为dequeue-jquery-migrate的wordpress插件,用来禁用wp中的jQuery Migrate

项目地址:https://github.com/cedaro/dequeue-jquery-migrate

核心代码:

/**
 * Remove the migrate script from the list of jQuery dependencies.
 * @since 1.0.0
 * @param WP_Scripts $scripts WP_Scripts scripts object. Passed by reference.
 */
 function cedaro_dequeue_jquery_migrate( $scripts ) {
 if ( ! is_admin() && ! empty( $scripts->registered['jquery'] ) ) {
 $jquery_dependencies = $scripts->registered['jquery']->deps;
 $scripts->registered['jquery']->deps = array_diff( $jquery_dependencies, array( 'jquery-migrate' ) );
 }
 }
 add_action( 'wp_default_scripts', 'cedaro_dequeue_jquery_migrate' );

爱鱼客著作权所有!未经允许不得转载:爱鱼客 » 更新WordPress自带的jQuery版本

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址