[WordPress] 理解するのに苦労を持っている WordPress のエンキュー jQuery 正しくする方法

スポンサーリンク

Question

ようにお勧めします、私はエンキュー、function.php に私のスクリプトの代わりに、次例のような頭の中でファイル:

function bok_scripts() {
    wp_enqueue_script( 'custom', get_template_directory_uri() . '/js/custom.js' );
}
add_action( 'wp_enqueue_scripts', 'bok_scripts' );

問題は、通常を使用して頭に jQuery を追加しない限り、この JavaScript が動作しないこと:


私は常に、実行の問題は、ワードプレス、

wp_head();

を使用する jQuery のバージョンを自動的に読み込まれること wp には-管理には/が含まれていますディレクトリから。JQuery は取得読み込まれるため 2 倍、それはコードのいくつかを壊します。たとえば、次の ‘($) 関数ではありません’ エラーがスローされます:

$(window).load(function(){
    $('#modal-notices').modal('show');
});

誰もがこれを克服する方法を知ってですか?、原料の束を試みたがすべて動作すると思われる wp には-管理には/が含まれていますディレクトリから jQuery を削除です。明らかに、しかし、その isn’t 適切な修正

回答

を行う必要がある最初の事はあなたのスクリプトの依存関係として jQuery を宣言してそれをロードするワードプレスを知っています。

その変更を行うに:

wp_enqueue_script( 'custom', get_template_directory_uri() . '/js/custom.js' );

に:

wp_enqueue_script( 'custom', get_template_directory_uri() . '/js/custom.js', array( 'jquery' ) );

に直面している 2 番目の問題があるし、noConflict モードで負荷をワードプレスに jQuery であります。これは、グローバル ‘$’ ショートカットが使用できなくを意味します。ここではいくつかの詳細: http://codex.wordpress.org/Function_Reference/wp_enqueue_script#jQuery _noConflict_Wrappers

あなたのスクリプトの作業の変更を取得する:

$(window).load(function(){
    $('#modal-notices').modal('show');
});

に:

(function($) {
    $(window).load(function(){
        $('#modal-notices').modal('show');
    });
})(jQuery);

最終的にキューの代わりにヘッダー/フッターに直接追加した任意の jQuery のスクリプトを削除することが必ず

http://stackoverflow.com/questions/27745853/having-trouble-understanding-how-to-properly-enqueue-jquery-in-wordpress

スポンサーリンク

Leave a Reply