如果我在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');
答案 0 :(得分:1)
我确信你可以做很少的技巧来完成这项工作,但我认为最好(对于版本兼容性)包括jQuery Migrate Plugin。这个插件提供了两个基本功能:
应该在jQuery之后立即加载migrate插件,例如
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版本的changelog。
注意: 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');