Тысячи сайтов на WordPress «сломались» после перехода на версию 5.5. Это связано с двумя проблемами, выявленными в новой версии.
В частности, в WP 5.5 была отключена поддержка jQuery Migrate, что привело к сбоям в работе минимум 10 000 сайтов. Ещё одна проблема связана с тем, как темы обрабатывают пагинацию.
- jQuery Migrate
WordPress 5.5 поставляется без JavaScript-библиотеки jQuery Migrate.
jQuery Migrate – это библиотека, которая действует как мост, который позволяет старому коду работать в WordPress.
При отсутствии этой библиотеки, если издатели используют устаревшие темы – особенно те, что больше не обновляются, то возникает проблема совместимости, что и произошло в случае с WP 5.5.
Так, один из издателей сообщил о проблемах с классическим редактором: после перехода на WP 5.5 он перестал работать. При этом при попытке опубликовать статью через блочный редактор издателю не удавалось загрузить главное изображение – это поле оставалось пустым.
Как выяснилось, проблема была в устаревшем плагине, корректная работа которого зависела от jQuery Migrate.
На форуме Stack Overflow также обсуждались сбои, связанные с использованием устаревших тем.
Чтобы решить эти проблемы, желательно перейти на активно поддерживаемый плагин, который регулярно получает обновления.
Команда WordPress также выпустила специальный плагин, который восстанавливает библиотеку JQuery Migrate: Enable jQuery Migrate Helper. Если не хочется отказываться от какого-то старого плагина, то можно воспользоваться этим решением.
- Пагинация
На некоторых сайтах обновление WordPress до версии 5.5 также нарушает пагинацию.
Так, один издатель сообщил, что после обновления из URL с 301 редиректом был удалён параметр page. Это нарушило работу сайта.
При этом данный параметр используют многие темы и плагины, что сказалось на работе многих ресурсов.
В данном случае произошёл конфликт: WP использует слово «page» для пагинации, но только с числовым значением. Между тем плагины используют это слово с дополнительными нечисловыми значениями.
Один из основных разработчиков WordPress Сергей Бирюков предложил следующее решение:
«[Данный параметр] должен иметь только числовое значение, и он не предназначен для использования в каких-либо других целях, например: ?page=offers&id=xxx. Поэтому я бы рекомендовал изменить эту переменную в пользовательском коде на другую, чтобы избежать конфликтов.
В качестве другого возможного решения вы можете отключить для этих запросов функцию redirect_canonical (), которая по умолчанию присоединена к действию template_redirect».
Напомним, что WordPress 5.5 вышла на прошлой неделе. Среди основных обновлений – lazy loading по умолчанию, встроенная XML-карта сайта и автообновление тем и плагинов.