jQuery-migrateはサイト表示スピードに影響するのが知られてますが、WordPressでは標準搭載されているので、それを外す方法を説明します。
かんたんです。15行程度追加するだけです。
jQuery-migrateは、jQueryのバージョンの差異を消してくれるjQueryプラグインです。
もし、使っているjQueryのバージョンより古いコーディングをしていたら、古いバージョンのコードを復元して下位互換を実現してくれます。
でも、サイト表示スピードが遅くなるので使わないに越したことはありません。
(古いバージョンのコーディングをやめればいい。)
WordPressでmigrateを外すのはかんたんです。まずコードから見てみましょう。
<?php
add_action( 'wp_enqueue_scripts', function() {
if ( is_admin() ) {
return; // 管理画面はjQueryを使うので消さない
}
if ( ! wp_script_is( 'jquery', 'registered' ) ) {
return; // jqueryがない
}
// 現設定取得
$scripts = wp_scripts();
$registered = $scripts->registered ;
$jquery = $registered['jquery'];
// 現設定解除
wp_deregister_script( 'jquery' );
wp_deregister_script( 'jquery-migrate' );
// jqueryの再登録
$handle = $jquery['handle'];
$src = $jquery['src'];
$deps = ['jquery-core']; //migrate delete
$ver = $jquery['ver'];
wp_register_script( $handle, $src, $deps, $ver );
// ほかのjsをエンキュー
} );
migrateをスクリプトのレジスタから外すだけです。jqueryハンドラは、jquery-core(jquery本体)とmigrateをワンセットにしたエイリアスなので、そこからmigrateの依存(deps)を外して再登録しました。
スクリプトの上書きはできないので解除 -> 再登録します。
以上です。かんたんすぎて枕のほうが長かったかも。
WordPressでは、jsファイルをHTMLの<style>に追加するのにwp_enqueue_script()を使いますが、jqueryはレジスタ登録しかしていません。
このへんの仕組みはここにまとめました。