WordPress 5.5: сломался слайдер, виноват jQuery Migrate
2 мин чтения
11 августа вышел WordPress 5.5. Обновился на следующий день, и на одном старом сайте сразу перестал листаться слайдер на главной, а в другом месте не открывалось выпадающее меню. Блог при этом жив.
Что случилось
WordPress годами подключал вместе с jQuery еще и jQuery Migrate. Это прослойка, которая позволяет старым скриптам, написанным под древние версии jQuery, работать на новой. В 5.5 ее перестали подключать по умолчанию. Это первый шаг к обновлению самого jQuery, который в WordPress сильно устарел.
Старые темы и плагины, которые на нее опирались, сломались. Сломались тихо: на странице ничего не пишет, просто не работает.
Как найти
Открыть сайт, нажать F12, вкладка «Консоль». Там будет красная ошибка вроде $(...).live is not a function и имя файла, откуда она. По имени файла понятно, тема это или какой плагин. У меня оказался плагин слайдера, который не обновлялся с 2014 года.
Как вернуть
Быстро: плагин Enable jQuery Migrate Helper. Его выпустили сами разработчики WordPress как раз под это обновление. Он снова подключает jQuery Migrate, а в админке показывает, какие скрипты пользуются устаревшими функциями.
Правильно: обновить тему и плагины, а заброшенные заменить. Помощник — временный, это написано прямо в его описании.
Слайдер я выкинул совсем. На главной вместо него одна картинка, и так лучше.
Что еще в 5.5
Плагины и темы теперь тоже могут обновляться сами. В списке плагинов у каждого появилась ссылка «Включить автообновление». Сам WordPress свои мелкие исправления ставит автоматически с 3.7, теперь можно и остальное. Я включил для плагинов, которым доверяю, и выключил для тех, что ломали сайт раньше.
У картинок появилась ленивая загрузка: браузер скачивает их, только когда до них долистали. Работает само, через атрибут loading="lazy".
И карта сайта для поисковиков встроена: /wp-sitemap.xml. Если стоит плагин, который делает свою, встроенная обычно отключается.