jQueryは、手軽に使えるJavaScriptライブラリなので、Web制作で幅広く利用されていますよね。ただし、WordPressでjQueryを使う際には、少し注意が必要です。

当記事では、WordPressでjQueryを扱う時によくある以下の問題について解説していきます。

  • WordPressではjQueryをどうやって読み込むの?
  • なぜjQueryが動かないの?

WordPressでjQueryを読み込む方法

まず、知っておきたいのが、WordPress本体に「jQuery」が組み込まれていることです。本来、jQueryを利用するには、専用のファイルを自分で用意して読み込む必要があります。

WordPressでは自動で内蔵のjQueryを読み込むため、その手間が必要ないんですよね。今回は、以下の2つの方法をそれぞれご紹介します。

  • WordPressのjQueryを利用する方法
  • 独自のjQueryを利用する方法(非推奨)

なお、JavaScriptファイルを読み込む方法が分からない方は、以下で解説してますので、こちらを参考に実装してください。

WordPressのjQueryを利用する方法

WordPressにデフォルトで備わっているjQueryを利用する方法です。この場合、「wp_enqueue_script()」を使って何かしらのjsファイルを読み込んでいれば、jQueryが自動的に読み込まれます。

特に読み込み作業がないため非常に楽ですが、「$」をそのまま利用できない点にご注意ください。

例えば、以下をjsファイルに書いても「Uncaught TypeError: $ is not a function…」とconsoleにエラーが表示されてうまく動作しません。

// NG例
$(function() {
  $('.selector').addClass('active');
});

WordPressでは他のライブラリとの衝突を避けるため、jQueryファイル内で「noConflict()」が実行されています。($を使えなくするメソッド)

そのため、以下のように「$」を「jQuery」に書き換える必要があります。これで正常に動作しますが、「$」が使えないので非常に不便です。

// OK例
jQuery(function() {
  jQuery('.selector').addClass('active');
});

そこで、「$」を使いたい方は、以下のように書き換えてみてください。

// OK例($を使えるのでオススメ)
jQuery(function($) {
  $('.selector').addClass('active');
});

この書き方であれば、「jQuery(function($) {〜})」の中でのみ「$」を使えるようになります。この方法が最も書きやすいと思いますので、ぜひ試してみてください。

独自のjQueryを利用する方法(非推奨)

自分で用意したjQueryを利用する方法については、正直あまりオススメしません。というのも、独自のjQueryを使うためには、WordPressのjQueryを無効化して新たに読み込む必要があるからです。

WordPressでは、テーマ以外にもプラグインによって様々な機能を拡張できます。もちろん、WordPress内蔵のjQueryを使う前提としたプラグインも存在するため、これらが正常に動作しなくなる可能性があるんですね。

どうしても自分で用意したい方は、以下の書き方で読み込んでみてください。(functions.phpに記載)

/* 独自のjQueryを読み込む */
add_action( 'wp_enqueue_scripts', function(){

  // デフォルトのjQueryの読み込みを無効化
  wp_deregister_script( 'jquery' );

  // 好きなjQueryを読み込み
  wp_enqueue_script( 'my_jquery', '読み込むjQueryのパス', );

} );

jQueryがうまく動かない時は?

まずは、さきほど紹介した以下2つの対策を行っているかご確認ください。

WordPressのjQueryを利用 「$」を使っていないか?→「jQuery」に書き換える
独自のjQueryを利用 jQueryを2重読み込みしていないか?→ソースコードで確認する(不要な読み込みをなくす)

ここまで対策して正常に動作しない場合は、自分のコードを書いたjsファイルがjQueryの後に読み込まれているかご確認ください。(jQueryよりも先にコードが読み込まれると動作しません。)

「wp_enqueue_script()」で読み込んでいる場合は、第三引数にスクリプトの依存関係「array(‘jquery’)」を指定してください。こちらを利用することで、jQueryの後に読み込ませることができます。

/* jQueryでコードを書いたファイル(my-script.js)を読み込む場合 */
add_action( 'wp_enqueue_scripts', function(){
  wp_enqueue_script( 'my-script', get_template_directory_uri() . '/my-script.js', array( 'jquery' ) );
} );

consoleにエラー「Uncaught ReferenceError: jQuery is not defined」が表示される場合は、こちらを疑ってください。

まとめ

今回は、WordPressでjQueryを読み込む方法と注意点について解説しました。普段からjQueryを使っている人ほど、これらの問題に陥りやすいかもしれませんね。

なお、テーマのカスタマイズなどで、少しだけJavaScriptを使いたい方は、管理画面上でも実行可能です。以下にその方法をご紹介してますので、ぜひ参考にしてください。