Апдейт версии jQuery после аудита Google Chrome

Если провести аудит в Chrome Developer Tools для WordPress, начиная с версии 4.9.8, то Google сообщит, что на сайте по-умолчанию используется jQuery версия 1.12.4, которая содержит две известных уязвимости безопасности.

Использование данной устаревшей версии jQuery уменьшает баллы, полученные сайтом в Lighthouse. И это не есть хорошо.

Удивительно, что WordPress использует старый jQuery в ядре. Вероятно, создатели CMS думают об обратной совместимости. Многие темы и плагины сделаны были еще с учетом старой версии jQuery, а 3.x и, вероятно, 2.x, ломают темы и плагины.

Внимание! Вы не должны заменять основную версию jQuery, особенно в панели администрирования. Так как многие функции ядра WordPress могут зависеть от этой версии. Также, другие плагины могут зависеть от версии jQuery, добавленной в ядро.

Если вы уверены, что хотите изменить версию ядра 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' );
}

Наверх ↑

Сергей Ермилов

28 апреля в 13:20 Посты,

Создаю веб-проекты, придумываю идеи, занимаюсь разработкой, оптимизирую и продвигаю сайты. Первые шаги в этом направлении сделал в 2008 году.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вы можете использовать HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Технологии

Статьи по теме Wordpress Статьи по теме PHP Статьи по теме Python Статьи по теме Javascript Статьи по теме Bootstrap Статьи по теме Git Статьи по теме Node JS