5

Google で検索を行ったところ、ゼロから作成した Wordpress テーマに jQuery を追加するための同じコードを何度も見つけました。

if (!is_admin()) add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11);
function my_jquery_enqueue() {
   wp_deregister_script('jquery');
   wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", false, null);
   wp_enqueue_script('jquery');
   wp_enqueue_script('my_script', get_bloginfo('template_url') . '/js/theme.js', array('jquery'), '1.0', true);
}

このコードを functions.php ファイルに追加し、js フォルダーを作成し、その中で次の構文を使用して theme.js ファイルを作成しました。

jQuery(function ($) {
    /* You can safely use $ in this code block to reference jQuery */
});

WP サイトを更新すると、theme.js ファイルが呼び出されないようです。Chrome 開発ツールでは、レンダリングされている js ファイルにリストされていません。

古いアプローチを使用していますか? jquery を使用して /js/theme.js ファイルを自分のテーマで機能させるにはどうすればよいですか?

4

1 に答える 1

8

まず、フロントエンドでのみ実行されるため、チェックwp_enqueue_scriptsは必要ありません。is_admin()

次に、自分が何をしているのか本当にわかっている場合にのみ、デフォルトの jQuery (WP にバンドルされている) の登録を解除してください。この例では、Google から古いバージョンを読み込んでいます (現在は 1.7.1 ではなく 1.8.3 です)。また、参照してください: WordPress の jQuery をデキューしないでください

get_stylesheet_directory_uri3 番目に、親テーマ フォルダーと子テーマ フォルダーをカウントする正しい関数であるを使用する必要があります。

最後に、このコードは以下で正常に動作し/themes/my-theme/functions.phpます:

add_action( "wp_enqueue_scripts", "my_js_so_14864221", 11 );

function my_js_so_14864221() 
{
    wp_enqueue_script( 
        'my_script', 
        get_stylesheet_directory_uri() . '/js/theme.js', 
        array( 'jquery' ), 
        '1.0', 
        true
    );
}

そして、theme.js の jQuery コードは次のようにカプセル化する必要があります。

jQuery(document).ready(function($) {   
    // $('#your-stuff').animate().hide().whatever();
});
于 2013-02-14T05:50:31.587 に答える