[WordPress] jQuery Migrate プラグインを読み込まないようにする方法
いつの間にか WordPress 本体の jQuery を読み込んだら自動的に jQuery Migrate プラグインも一緒に読み込むようになっていました。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 Migrate プラグインが読み込まれなくなりました。
注意点
廃止になったAPIを使用していないコードのみ使っていて、余計なものを読み込みたくない時には jQuery Migrate プラグイン だけ外すのもいいと思いますが、WPプラグインでも jQuery を使っている場合があるので気を付けなくてはと思います。
読み込むファイルを減らしたいだけなら、いっそ WordPress 本体のプラグインを読まずに自分で用意した 1.8 系の jQuery 本体を読み込んでもよいかもしれませんね。
No Comments & Tracbacks