【问题标题】:How do I stop WordPress loading jQuery and jQuery-migrate?如何停止 WordPress 加载 jQuery 和 jQuery-migrate?
【发布时间】:2013-08-27 14:26:08
【问题描述】:

WordPress 正在wp_head() 中加载以下 2 个文件:

<script type='text/javascript' src='http://example.com/wp-includes/js/jquery/jquery.js?ver=1.10.2'></script>
<script type='text/javascript' src='http://example.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1'></script>

为了阻止这种情况的发生,我尝试停用所有插件并在 functions.php 中注销 jQuery,但似乎没有什么能摆脱它。

有什么办法可以阻止这种情况吗?

我正在使用 Wordpress v3.6。

【问题讨论】:

    标签: javascript php jquery wordpress jquery-migrate


    【解决方案1】:

    您可能想在您的 functions.php 中使用它

    add_filter( 'wp_default_scripts', 'remove_jquery_migrate' );
    
    function remove_jquery_migrate( &$scripts){
        if(!is_admin()){
            $scripts->remove( 'jquery');
            $scripts->add( 'jquery', false, array( 'jquery-core' ), '1.2.1' );
        }
    }
    

    1.2.1 = 最新版本的 jquery-migrate

    如果您想检查您的网站是否需要 jquery-migrate,请打开 wp-config.php 和这行代码:define('SCRIPT_DEBUG', true);。这样您就可以监控任何错误。 当您的网站上线时,不要忘记删除它!

    希望对您有所帮助。

    【讨论】:

    • 嘿,谢谢你 - 它看起来不错。如果没有 jquery-migrate,如何检查是否有错误?
    • 提交了一个编辑以删除版本号,因为维护它是不合理的,它可能会被省略。另外值得注意的是,这种方法有效,因为jquery 句柄依赖于jquery-migratejquery-core。如果后面的任何一个被重命名,或者如果添加了其他东西,这个函数将不再具有预期的效果。
    • 我认为这个版本只是一个缓存破坏者,所以你可以把你想要的一切都放在那里
    【解决方案2】:

    Wordpress 有 jquery 库,您应该利用它。如果你想删除它,你可以这样做:

    function deregister_qjuery() {  
        if ( !is_admin() ) {
            wp_deregister_script('jquery');
        }
    }  
    
    add_action('wp_enqueue_scripts', 'deregister_qjuery'); 
    

    但请考虑如何正确加载您的 JS 文件。

    进一步阅读:

    亲爱的主题开发者,这是您在 WordPress 主题中添加脚本的方式 http://wpcandy.com/teaches/how-to-load-scripts-in-wordpress-themes/

    正确加载 jQuery http://beneverard.co.uk/blog/wordpress-loading-jquery-correctly-version-2/

    如何在 Wordpress 中添加最初从 Internet 加载的备份 javascript 文件 How to add a backup javascript file in Wordpress that initially loads off internet

    【讨论】:

      【解决方案3】:

      使用 Wordpress 的 wp_enqueue_script 函数,而不是在模板中定义脚本。这样您就不会导入不同版本的 javascript 库。

      http://codex.wordpress.org/Function_Reference/wp_enqueue_script

      【讨论】:

        【解决方案4】:
        function 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', 'dequeue_jquery_migrate' );
        

        【讨论】:

        • 当用全局 $wp_scripts 变量替换 $scripts 变量时,这也适用于 wp_print_scripts 挂钩。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-10
        • 2011-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-03
        相关资源
        最近更新 更多