1

如果我在 Wordpress 中包含更高版本的 jQuery,Widgets 页面之类的东西将不再工作。当我尝试单击特定小部件中的向下箭头进行更新时,它不会显示其设置。

wp_enqueue_script('ecom_jquery_script', 'http://code.jquery.com/jquery-1.9.0.min.js');
wp_enqueue_script('ecom_jquery-ui_script', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js');
wp_enqueue_script('ecom_flexslider_script', plugins_url('/js/ecom-jquery.flexslider.js', __FILE__)); 
wp_enqueue_script('ecom_admin_script', plugins_url('/js/ecom-main.js', __FILE__));

但是当我注释掉 jquery 和其他依赖它的脚本时,小部件页面将起作用。

我已经尝试过寻找解决方案,但常见的解决方案是让 jquery 没有冲突:

$j=jQuery.noConflict();

// Use jQuery via $j(...)
$j(document).ready(function(){
  alert('test');
});

但这不起作用,因为简单地包含较新版本的 jquery 将使依赖于较旧版本 jquery 的脚本无法工作。请帮忙。

注销脚本也不起作用,因为如果使用较新版本的 jquery,wordpress 将拒绝工作:

wp_deregister_script('jquery');
4

1 回答 1

1

我确信它们是你可以做的一些技巧来完成这项工作,但我认为最好的(对于版本兼容性)是包含jQuery Migrate Plugin。该插件提供了两个基本功能:

  1. 它重新启用已弃用的功能,因此您的 v1.8 兼容代码将再次工作
  2. 当使用不推荐使用的功能时,它会向开发人员控制台记录警告,因此您应该会发现更容易解决问题。

迁移插件应该在 jQuery 之后立即加载,例如

wp_enqueue_script('ecom_jquery_script', 'http://code.jquery.com/jquery-1.9.0.min.js');
wp_enqueue_script('ecom_jquery_mig_script', 'http://code.jquery.com/jquery-migrate-1.0.0.js');

但是,您应该查看最后一个 jQuery 版本的更改日志

注意:wp_deregister_script('jquery')功能正在运行,但您需要使用相同的名称(jquery)再次注册,然后像这样排队:

wp_deregister_script('jquery')
wp_register_script('jquery', 'http://code.jquery.com/jquery-1.9.0.min.js'); 
wp_enqueue_script('jquery');
于 2013-02-11T07:24:43.130 回答