Как отключить jquery-migrate в WordPress

Если открыть исходный код вашего сайта на WordPress, в заголовке или в подвале сайта вы сможете найти примерно такие строки:

<script src='http://example.com/wp-includes/js/jquery/jquery.js'></script>
<script src='http://example.com/wp-includes/js/jquery/jquery-migrate.min.js'></script>

Как вы видите, jquery-migrate подключен вместе с jquery.

Плагин jQuery Migrate используется для помощи в обновлении до последней версии jQuery. Скрипт восстанавливает функции, которые были удалены, а версия для разработчиков показывает предупреждения в консоли браузера для любых устаревших или отсутствующих функций. Это позволяет разработчикам и администраторам легче переходить со старых версий jQuery на новые.

Все это хорошо, но иногда jQuery Migrate просто не нужен, например:

  • Вам нужна более старая версия jQuery для вашего сайта. Но WordPress продолжает включать jQuery Migrate, что делает невозможным проведение необходимого тестирования.

  • Код javascript вашего сайта написан в соответствии с последними стандартами, поэтому вам не нужно проверять его на наличие устаревших функций.

Отключение jquery-migrate с помощью плагина

Для отключения jquery-migrate вы можете установить очень маленький плагин [Remove jQuery Migrate] (https://wordpress.org/plugins/remove-jquery-migrate/).

Чтобы плагин начал работать, его нужно просто активировать. Он не имеет никаких настроек.

Отключение jQuery Migrate с помощью кода

add_filter( 'wp_default_scripts', 'remove_jquery_migrate' );

function remove_jquery_migrate( $scripts ) {

	if ( empty( $scripts->registered['jquery'] ) || is_admin() ) {
		return;
	}

	$deps = & $scripts->registered['jquery']->deps;

	$deps = array_diff( $deps, [ 'jquery-migrate' ] );
}

Этот код делает то же самое, что и вышеупомянутый плагин. Чтобы он работал, просто добавьте его в файл functions.php вашей темы или в другое место, куда вы включаете фрагменты php-кода.

После добавления этот скрипт указывает WordPress НЕ загружать jQuery Migrate на фронт-энде вашего сайта.