web-dev-qa-db-ja.com

WordPressで登録解除を使用せずにjQueryをフッターに移動する

こんにちは私はフッターに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-registerre-registerのやり方を避けたいのです。

任意の助けは非常に高く評価されます。


重要な更新: _ WP v3.9 de-registerre-registerオプションを使うよりも、jqueryスクリプトをフッターに入れる方法はありません。作者が以下に指摘したように、それは単にできない。

3
iSaumya

フック$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 );
    }
);

編集 :これは、3.9より前のバージョンのWordPressでのみ動作します。

2
bueltge