WordPress のテーマファイル head.php 内に、<?php wp_head(); ?>
を書き込んでいると、コンフリクト回避のコードが追加された jQuery が自動で読み込まれる仕様になっています。
これはこれで便利なのですが、任意のバージョンの jQuery のみを読み込みたい場合など、邪魔になるケースもあるかと思います。
そんなときのために。
jQuery の自動挿入をストップする方法を紹介します。
テーマファイルに functions.php を用意して、以下のコードを書き加えましょう。
add_action('wp_print_scripts','my_deregister_script',100); function my_deregister_script() { wp_deregister_script('jquery'); }
これだけで、WordPress 同梱の jQuery の読み込みがなくなります。
また、さらにコードを書き加えて、Google から最新版の jQuery を読み込むように設定することも可能です。
その場合のコードは以下。
// WordPress 同梱の jQuery の読み込みを停止。 add_action('wp_print_scripts','my_deregister_script',100); function my_deregister_script() { wp_deregister_script('jquery'); } // Google から jQuery を読み込む。 wp_enqueue_script('jquery','http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js',array(),'1.7.1');
これで、任意のバージョンの jQuery を読み込むことができました。
さて。
ここでまた1つ問題が発生します。
上記コードを実装すると、WordPressの管理画面内で使われている jQuery も入れ替わり、一部の機能が正常に動作しなくなったりします。
そこで、この問題を回避するために is_admin()
という関数を用います。
if (!is_admin()) { wp_deregister_script('jquery'); wp_enqueue_script('jquery','http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js',array(),'1.7.1'); }
以上で管理画面での問題も解決しました!