[WordPress] jQuery Migrate プラグインを読み込まないようにする方法

いつの間にか WordPress 本体の jQuery を読み込んだら自動的に jQuery Migrate プラグインも一緒に読み込むようになっていました。jQuery Migrate プラグインのみを外す場面はあまりないかもしれませんが、せっかくプラグインのみ外す方法を調べたのでメモです。

head内 jQuery Migrate プラグイン読み込み部分

jQuery Migrate プラグインとは

jQuery はバージョン 1.9 がリリースされた時に、機能が重複したAPIなどが廃止されたり、挙動が変更されたりしました。jQuery Migrate プラグイン(jquery/jquery-migrate · GitHub)はその廃止になった機能を補うことができるプラグインです。

jQuery Migrate プラグインを入れると、1.9 以上のjQueryで廃止されたAPIを使ったコードが動くようになります。(WordPress 3.8.1 に入っていたのは jQuery Migrate v1.2.1 でした。)

変更になったメソッドなどはこちら「jQuery Core 1.9 Upgrade Guide | jQuery」で確認できます。日本語のページだとこちらのページ「jQuery 1.9 で変わったところを調べてみる。 | バシャログ。」がわかりやすいです。

jQuery Migrate プラグインだけ外す方法

wp_default_scripts フィルターフックを使って WordPress がデフォルトで読むスクリプトを加工します。以下のコードを functions.php へ記入して完了です。

add_filter( 'wp_default_scripts', 'dequeue_jquery_migrate' );
function dequeue_jquery_migrate( $scripts){
	if(!is_admin()){	
		$scripts->remove( 'jquery');
		$scripts->add( 'jquery', false, array( 'jquery-core' ), '1.10.2' );
	}
}

jQuery が呼ばれた時に以下のように「jquery-core」(jQuery本体)と「jquery-migrate」が読み込まれるようになっているので、いったんデフォルトスクリプトから外して、オブジェクトを「jquery-core」のみ読むように定義しなおします。
jQuery読み込み時のdeps変数中身
これで、自動的に読み込まれていた jQuery Migrate プラグインが読み込まれなくなりました。
head内 jQuery Migrate プラグイン読み込んでいた箇所

注意点

廃止になったAPIを使用していないコードのみ使っていて、余計なものを読み込みたくない時には jQuery Migrate プラグイン だけ外すのもいいと思いますが、WPプラグインでも jQuery を使っている場合があるので気を付けなくてはと思います。

読み込むファイルを減らしたいだけなら、いっそ WordPress 本体のプラグインを読まずに自分で用意した 1.8 系の jQuery 本体を読み込んでもよいかもしれませんね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です