WordPressのjQueryにバージョン指定したりフッターで読み込むようにする方法
header.phpに書く
wp_deregister_script('jquery');
wp_enqueue_script('jquery', 'http://code.jquery.com/jquery-1.11.1.min.js', array(), '1.11.1');
既に登録されている'jquery'を削除して、追加する。
ネットでよく見るやり方。しかし、なぜheader.php
に書くのか……
function.phpに書く
wp_deregister_script('jquery');
wp_enqueue_script('jquery', 'http://code.jquery.com/jquery-1.11.1.min.js', array(), '1.11.1');
同じ記述はfunction.php
に書いても動く。
こっちの方がまだしっくりくる。
ヘッダーで一番最初に読み込むスクリプトにしたい
それでも<head>
内でどの順番に読まれるのか定まらず、jQueryに依存しているプラグインがjQueryが見つからないと怒ったりするので困る。
add_filter('wp_enqueue_scripts', 'enqueue_my_scripts', 0);
function enqueue_my_scripts() {
wp_enqueue_script('jquery', 'http://code.jquery.com/jquery-1.11.1.min.js', array(), '1.11.1');
}
そんな時はフィルターを使って処理を割り込ませればいいらしい。
このやり方だとwp_deregister_script()
が要らなくなる。
というか、こっちが正しい指定の仕方のような気がする。
フッターで読み込むようにする
add_filter('wp_enqueue_scripts', 'enqueue_my_scripts', 0);
function enqueue_my_scripts() {
wp_enqueue_script('jquery', 'http://code.jquery.com/jquery-1.11.1.min.js', array(), '1.11.1', true);
}
wp_enqueue_script()
の5番目の引数をtrueにすればいい。
ちなみに、フッターの最後に読ませたい場合は、add_filter()
の3番目の数字を高いもの(デフォルトが10なのでそれ以上)にしておけばよさそう。