在WordPress中不使用取消注册将jQuery移动到页脚

时间:2016-08-31 作者:iSaumya

您好,我正在寻找一种将wordpress默认jQuery移动到页脚的方法,我看到了以下答案:https://wordpress.stackexchange.com/a/225936/50584

所以,我在我的孩子主题中尝试了这种方法functions.php 文件:

add_action( \'wp_enqueue_scripts\', function() {
    // Move jQuery to the footer
    wp_scripts()->add_data( \'jquery\', \'group\', 1 );
    wp_scripts()->add_data( \'jquery-core\', \'group\', 1 );
    wp_scripts()->add_data( \'jquery-migrate\', \'group\', 1 );
});
但它并没有将jquery推到页脚。知道为什么会这样吗?我想避免de-register &;re-register 这样做的方式。

我们将非常感谢您的帮助。

<小时>Important Update:自WP v3起。9除了使用de-register &;re-register 选项正如作者在下面指出的那样,这根本无法做到。

1 个回复
最合适的回答,由SO网友:bueltge 整理而成

您应该使用参数$scripts 钩子的wp_default_scripts. 在这个钩子中,所有默认脚本都已排队,还有jQuery,您可以更改他的数据,比如在页脚中加载的组。

add_action( \'wp_default_scripts\', \'_print_jquery_in_footer\' );
function _print_jquery_in_footer( $scripts ) {

    if ( ! is_admin() )
        $scripts->add_data( \'jquery\', \'group\', 1 );
}
也可以通过匿名函数使用较新的代码样式,如您的问题示例;从php 5.3开始可能:

add_action(
    \'wp_default_scripts\',
    function( $scripts ) {
        if ( ! is_admin() )
            $scripts->add_data( \'jquery\', \'group\', 1 );
    }
);
Edit: 这只适用于低于3.9的WordPress版本!

相关推荐

JQuery php请求返回一个奇怪的结果

我有一个奇怪的小故障发生在我身上,我不知道我是如何产生它的,或者它是否是正常的。我正在开发自己的插件,当一个足球队/足球队被输入到一个框中时,它会检查它是否已经在数据库中。以下是我的代码行add_action( \'admin_footer\', \'fws_teamcheck_javascript\' ); function fws_teamcheck_javascript() { ?> <script type="text/javascript">