Проверяя исходный код, я увидел, что WordPress использует jQuery v1.12.4. Почему WordPress использует эту устаревшую версию jQuery?
Проверяя исходный код, я увидел, что WordPress использует jQuery v1.12.4. Почему WordPress использует эту устаревшую версию jQuery?
Ответы:
Существует множество тем и плагинов, использующих jQuery, загруженных ядром WP. Каждый раз, когда jQuery обновляется, существует риск поломки старых тем и плагинов (поскольку многие из них все еще используются, но больше не обновляются). Вот почему вы также видите jquery-migrate.js
в своем исходном коде. Это скрипт, который перехватывает старые функции, используемые плагинами / темами, и обеспечивает их работу в новых версиях jQuery.
Переход к семейству jQuery 3.x
может привести к сбою многих плагинов / тем, поскольку невозможно создать сценарий миграции для всего, что устарело. Именно поэтому новые версии 1.x
семейства были еще разработаны в то время как 2.x
и 3.x
семья , уже существовали. Не будет новых 1.x
и 2.x
версий после 1.12
и 2.2
, за исключением (безопасности) патчей. Хотя jQuery 1.12
не устарел сейчас, это будет в ближайшем будущем.
Итак, WordPress в безвыходном положении. Если он не обновляется до более высокой версии jQuery, он не может идти в ногу с новыми возможностями. Однако, если он обновится, старые сайты сломаются. Наиболее вероятным результатом является то, что WP будет ждать пару лет, поэтому старые темы / плагины будут в любом случае исключены, а затем перейдут к 3.x
семейству .
осветление
Вышесказанное может указывать на то, что переход с 1.x
версий на 3.x
фактически невозможен. Это не правда. Это немного сложно. Хитрость заключается в том, чтобы сначала выполнить обновление 1.12
, отладить результат с помощью более старого сценария миграции, а затем добавить 3.0
сценарий миграции, с которым можно работать 1.12
. Подробные инструкции здесь .
Обновление безопасности
Разработчики заметят, что Google Dev Tools / Lighthouse сообщает о том, что сайты WordPress уязвимы из-за наличия этой более старой версии jQuery - или так кажется. По сути, все, что делает Lighthouse, это проверяет, есть ли в этой библиотеке уязвимости, упомянутые в базе данных уязвимостей Snyk . Если вы проверите это подробно, вы обнаружите, что версия 1.12.4 чистая. Учитывая широкое использование 1.12.4, вы можете рассчитывать на любую серьезную уязвимость, с которой быстро справляются.
Чтобы быть еще более правильным.
Ветвь 1.x включает поддержку IE 6/7/8, а ветка 2.x - нет.
https://blog.jquery.com/2016/05/20/jquery-1-12-4-and-2-2-4-released/