Если провести аудит в Chrome Developer Tools для WordPress, начиная с версии 4.9.8, то Google сообщит, что на сайте по-умолчанию используется jQuery версия 1.12.4, которая содержит две известных уязвимости безопасности.
Использование данной устаревшей версии jQuery уменьшает баллы, полученные сайтом в Lighthouse. И это не есть хорошо.
Удивительно, что WordPress использует старый jQuery в ядре. Вероятно, создатели CMS думают об обратной совместимости. Многие темы и плагины сделаны были еще с учетом старой версии jQuery, а 3.x и, вероятно, 2.x, ломают темы и плагины.
Если вы уверены, что хотите изменить версию ядра jQuery, то в этом случае вы можете добавить следующий код в файл functions.php вашей активной темы (еще лучше, если вы создадите для этого плагин):
function replace_core_jquery_version() {
wp_deregister_script( 'jquery' );
// Измените URL, если вы хотите загрузить локальную копию jQuery с вашего собственного сервера
wp_register_script( 'jquery', "https://code.jquery.com/jquery-3.1.1.min.js", array(), '3.1.1' );
}
add_action( 'wp_enqueue_scripts', 'replace_core_jquery_version' );
Код выше заменит основную версию jQuery и вместо этого загрузит версию 3.1.1 с сервера Google.
Также, хотя это и не рекомендуется, для замены версии jQuery в wp-admin можно использовать следующую дополнительную строку кода:
add_action( 'admin_enqueue_scripts', 'replace_core_jquery_version' );
Для админки использование старой версии, в целом, не принципиально, т.к. на баллы Аудита это никак не сказывается.
Таким образом, даже после обновления WordPress, у вас будет версия jQuery, которую вы захотите.
Можно еще кое-что сделать.
Функция replace_core_jquery_version
выше также удаляет jquery-migrate
скрипт, добавленный ядром WordPress.
Это разумно, так как новейшая версия jQuery не будет корректно работать со старой версией jquery-migrate
. Однако вы можете включить и более новую версию jquery-migrate
. В этом случае используйте следующую функцию:
function replace_core_jquery_version() {
wp_deregister_script( 'jquery-core' );
wp_register_script( 'jquery-core', "https://code.jquery.com/jquery-3.1.1.min.js", array(), '3.1.1' );
wp_deregister_script( 'jquery-migrate' );
wp_register_script( 'jquery-migrate', "https://code.jquery.com/jquery-migrate-3.0.0.min.js", array(), '3.0.0' );
}