包含 jQuery 时 WordPress 无法工作

问题描述 投票:0回答:2

如果我在 Wordpress 中包含更高版本的 jQuery,则“小部件”页面之类的内容将不再工作。当我尝试单击特定小部件中的向下箭头来更新它时,它不显示其设置。

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');
jquery wordpress
2个回答
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 版本的 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');

0
投票
function prefix_remove_scripts() {
    
        wp_dequeue_script( 'jquery-init-custom-script' );
        wp_dequeue_script( 'leadin-script-loader-js' );
        wp_deregister_script('jquery-init-custom-script');
        wp_deregister_script('leadin-script-loader-js');
        
           wp_register_script('jquery-init-custom-script', '', false, '1.11.3', 'true');
           wp_register_script('leadin-script-loader-js', '', false, '1.11.3', 'true');
            wp_enqueue_script('jquery-init-custom-script');
            wp_enqueue_script('leadin-script-loader-js');
    
}
add_action( 'wp_enqueue_scripts', 'prefix_remove_scripts', 100 );
© www.soinside.com 2019 - 2024. All rights reserved.