「WordPressでjQueryのコードが動かない」場合の対処方法

wordpressでサイトを構築中、jQueryを使ったコードを書き込むことがよくあるかと思います。
でも、動かない・・・。
ネットで「このコードをコピペしたら動くよ」っていうのを参考にきちんとやっているはずなのに。
でも、動かない・・・。

そんな時に役立つ「Google Chrome」を利用した原因の特定方法と、一般的な「$の別名定義」エラーに起因するトラブルの解決方法を紹介します。

1.エラー原因の特定

何はともあれコードが実行されない原因の特定を行います。Javascriptのエラーは「Google Chrome」のデベロッパーツール Developer Toolsを利用すると簡単に調べることができます。

以下の手順でエラーをチェックしてみてください。

(1) Developer Toolsを表示する

jQueryのコードが実行されないページを表示した状態で、「F12」キーを押します。

(2) ページ内で発生しているエラーを表示する

Developer ToolsのConsoleタブをクリックし、コンソール画面を表示します。

Chrome Developer Tools
Chrome Developer Tools

上記の手順で表示したコンソール画面に、
Uncaught TypeError: $ is not a function
というエラーが表示されている場合、コードが実行されないのは「$の別名定義」が原因です。

大抵のwordpressテーマでは、jQuery本体自体はすでに読み込まれているものの、jQueryと他のjavascriptライブラリがコンフリクトしないように、jQueryが使用する「$」という関数名の別名定義を未定義状態にしています。なので「$」マークを使って書かれたコードが効かなくなるのです。

2.解決策

解決策としては、以下の2つの方法があるかと思います。どちらでもお好きな方で対応してください。

(1) 「$」を再定義する

最もお手軽&一般的な方法です。コピペしたjavascriptのコードをすべて以下のコードで囲ってしまいます。

jQuery(function($){

  // ここにコピペしてきたコードを貼り付ける

});

これだけで、別名定義を起因とするエラーは解決されます。

(2) コード中の「$」をすべて「jQuery」に書き換える

通常は上記の解決策でいいのですが、ついでにもう一つの解決策も示します。

「$」は定義されていないので、コピペしたコードの「$」と書かれた部分を、本来jQueryが使っている「jQuery」という関数名に書き換えてあげれば動きます。エディタの置き換え機能などを使えば一発でいくはず。