Wordpress

WordPress 7.0 и 7.1: что реально изменилось за лето и как обновиться без сюрпризов

31.08.2026 11 мин чтения
Обложка: версии WordPress 7.0 и 7.1, блоки редактора и командная палитра Ctrl+K на тёмно-синем фоне

За одно лето ядро WordPress получило два мажорных релиза и два патча безопасности. 20 мая вышла 7.0 «Armstrong», 17 июля — экстренный 7.0.2, который WordPress.org принудительно раскатал на уязвимые установки, 6 августа — 7.0.3, а 19 августа, прямо в последний день WordCamp US в Финиксе, состоялся релиз 7.1. Если вы последний раз заглядывали в админку весной, она теперь выглядит иначе.

На этой неделе я прогонял обновления по паре клиентских проектов и в очередной раз поймал себя на мысли: вопросов накопилось столько, что проще выложить всё в статью. Пойдём по порядку. Что внутри 7.0, почему из неё вырезали главную фичу, что сломается у разработчиков, зачем нужен 7.1 и в каком порядке всё это ставить.

Тридцатый мажор, который опоздал на месяц

Сначала хронология, потому что она объясняет характер релиза. 7.0 планировали к 9 апреля, ко времени WordCamp Asia. Не успели. 8 мая, за двенадцать дней до выхода, Мэтт Мулленвег вырезал из релиза режим совместного редактирования в реальном времени — ту самую фичу, ради которой всё затевалось. Официальная формулировка: опасения по поводу площади атаки, race conditions, серверной нагрузки, расхода памяти и повторяющихся багов, найденных фаззингом. Дата релиза при этом устояла, и 20 мая 7.0 всё-таки вышла (подробная хронология — в разборе smartwp, на который я опирался при подготовке).

Это тридцатая мажорная версия WordPress с момента 1.0 «Miles» в январе 2004-го. В релизе числятся 875+ контрибьюторов (двести из них — впервые) и более 420 улучшений ядра и Gutenberg. Имена версий традиционно дают в честь джазовых музыкантов: 6.8 был «Cecil» (Сесил Тейлор), 6.9 — «Gene Harris», теперь вот Луи Армстронг. Из анонса: «WordPress 7.0 знаменует начало новой эры, закладывая фундамент AI во всём опыте WordPress». Звучит громко, поэтому дальше разберу, что за этим стоит на самом деле.

AI в ядре: пока трубы, а не вода

Главное изменение 7.0 структурное. В ядре появилась нативная обвязка для работы с генеративными моделями. Состоит она из четырёх частей:

  • AI Client — клиент внутри ядра, через который плагины и темы общаются с AI-моделями. Не нужно тащить собственный SDK в каждый проект.
  • Abilities API на сервере — PHP-API для регистрации «способностей» (сгенерировать, суммаризировать, предложить вариант) и представления их остальным частям WordPress. Базово он приехал ещё в 6.9, в 7.0 его обстроили клиентом.
  • Клиентские способности на JavaScript — с готовым UI и интеграцией в Command Palette, чтобы дёргать их из любой точки редактора.
  • Экран Connectors — центр настройки подключений к внешним AI-сервисам. Из коробки три пресета, свои добавляются за пару кликов.

Здесь важно не покупаться на заголовки: сам по себе AI Client ничего не генерирует. Это трубы без воды. Чтобы получить генерацию заголовков, картинок или alt-текста, поверх фундамента ставится отдельный опциональный AI-плагин. Дефолтная установка 7.0 ровно настолько же «AI-шная», насколько 6.9, пока вы сами не щёлкнете рубильником. И это, на мой взгляд, правильный ход: тем, кто не хочет нейросети в редакторе, ничего не навязали.

Разработчикам это даёт кое-что более осязаемое — единое место для интеграции AI-фич. Если вы когда-нибудь встраивали генерацию текста в плагин, вам знакомен этот набор: свой HTTP-клиент, свои ключи, свои ретраи, свой UI. Abilities API предлагает вместо этого один канонический способ объявить «умение» и позволить остальной экосистеме находить и вызывать его. Для агентств с контентными проектами это уже рабочий сценарий, а не абстракция.

Режим Google Docs отложили

Отдельно про то, чего в 7.0 нет. Совместное редактирование в реальном времени — несколько человек в одном посте одновременно, как в Google Docs — разрабатывали несколько циклов и продвигали как фишку релиза. 8 мая Мулленвег снял его с поезда: площадь атаки, race conditions, нагрузка на сервер, память, баги из фаззинга. Фичу не похоронили: её готовят к стадии фича-плагина с широким тестированием, после чего она может вернуться в ядро. Даты нет.

Практический вывод: если ждали 7.0 ради живого совместного редактирования — ждать дальше. Небольшая компенсация уже есть. Заметки (Notes) на уровне блоков приехали ещё в 6.9, а в 7.1 к ним добавили email-уведомления при @mentions и ссылки для шаринга ревизий.

Что увидит обычный редактор

Самое заметное — админка. Свежая установка 7.0 выглядит иначе: новая цветовая схема, больше воздуха, плавные переходы между экранами. Это самое основательное обновление внешнего вида wp-admin за последние годы.

Command Palette — то, к чему привыкаешь за два дня. Ctrl+K (или Cmd+K) из любого места админки открывает фаззи-поиск, который перепрыгивает на любой экран, пост или зарегистрированную команду. Идея честно украдена из VS Code и Linear, и на сайтах со старым ядром этой привычки теперь будет не хватать.

Font Library — отдельный экран для установки и управления шрифтами, единый для блочных, гибридных и классических тем. Раньше это было размазано по настройкам темы и плагинам. На экране ревизий появился визуальный scrubber: метки показывают, что именно менялось в каждом сохранении, и вчитываться в текстовые диффы приходится реже.

Новых блоков четыре:

  • Breadcrumbs — нативные хлебные крошки. До 7.0 это были Yoast, Rank Math или собственный шорткод; теперь блок в ядре, со стилизацией через theme.json.
  • Icons — блок иконок с библиотекой готовых SVG. Для списков фич, плашек и всего, что раньше собиралось ручными вставками разметки.
  • Gallery с lightbox — галерея умеет открывать слайдшоу по клику, без плагина.
  • Переработанный Heading — более чистая разметка и отдельные стили уровней заголовков.

Редактор в целом тоже подтянули. Кастомный CSS вешается на отдельный блок прямо в сайдбаре — больше не нужен дочерний компонент ради одного отступа. Блоки можно скрывать и показывать по устройствам. Мобильное меню-оверлей собирается блоками и паттернами. Паттерны по умолчанию ведут себя как единое целое, а отдельные элементы «открепляются» по необходимости.

Для разработчиков: что сломается, а что упростит жизнь

Схема: панели админки WordPress соединяются с сетью AI-способностей Abilities API

Теперь то, ради чего стоит читать релизные заметки, если у вас свои плагины и темы.

PHP без сборки. Блоки и паттерны можно регистрировать чисто на PHP через Block API — без block.json, webpack и wp-scripts. Классический сценарий «клиенту нужен один блок, а тащить в проект фронтенд-сборку не хочется» теперь решается в functions.php. Порог входа в разработку блоков заметно упал.

Расширяемый Site Editor. У редактора сайта появилась маршрутизация с валидацией и пакет wordpress/boot, через который плагины добавляют собственные страницы. Site Editor перестал быть фиксированным набором экранов и стал платформой.

Interactivity API прирос функцией watch() и директивой data-wp-watch: блоки могут реагировать на изменения состояния без перерендера. Мелочь, а для интерактивных блоков приятная. Скрипты, кроме того, научились объявлять зависимости от ESM-модулей, что сглаживает переход на модули.

Минимальный PHP теперь 7.4 — поддержка 7.2 и 7.3 выброшена. Если хостинг не трогали годами, сначала проверьте версию PHP (Site Health покажет честно), потом обновляйте ядро. Из библиотек подтянули backbone до 1.6.1, PHPMailer до 7.0.2, CodeMirror перевели на пятую ветку.

Что убрали и где что-то может отвалиться:

  • add_theme_support( 'html5', array( 'script' ) ) больше не нужен — загрузчик скриптов сам выдаёт корректный HTML5. Аргумент снимаем.
  • Функции вроде get_the_author_link() больше не добавляют title-атрибут; если он нужен, его вернули отдельным параметром.
  • Паттерны по умолчанию работают в режиме contentOnly. Если ваши блоки рассчитаны на полную редактируемость внутри паттернов, пометьте редактируемые атрибуты как "role": "content", иначе редакторы их просто не увидят.

Безопасность: почему тянуть нельзя

Лето выдалось горячим и по части безопасности. 17 июля вышел 7.0.2 с закрытием одной критической и одной high-уязвимости — настолько серьёзных, что WordPress.org включил принудительные автообновления для затронутых версий. Мера редкая, и сама по себе она о многом говорит. 6 августа вышел 7.0.3 ещё с дюжиной фиксов, включая проблему раскрытия данных в Notes.

Я подробно разбирал недавнюю критическую RCE-уязвимость ядра wp2shell, и вывод от этого не меняется: патчи безопасности ставятся в день выхода, а не в удобное окно. Автообновления ядра ради этого и существуют. Проверьте прямо сейчас, какая версия стоит на ваших сайтах: если не 7.0.3 или новее — обновляйте сегодня.

WordPress 7.1: тихий, но полезный

19 августа, в последний день WordCamp US, вышла 7.1. Полная сводка изменений — в ежемесячной заметке для разработчиков на developer.wordpress.org. Релиз без громких заголовков, но для тех, кто делает темы и блоки, он ценнее 7.0.

Адаптивные стили в ядре. Наконец-то стили задаются отдельно для планшета и мобильного — и в theme.json, и на уровне конкретного блока в редакторе. Синтаксис — ключи @mobile и @tablet:

"styles": {
    "blocks": {
        "core/group": {
            "spacing": {
                "padding": { "top": "3rem" }
            },
            "@mobile": {
                "spacing": {
                    "padding": { "top": "1rem" }
                }
            }
        }
    }
}

Ключа @desktop нет, и это не случайность: базовые стили и есть стили десктопа, они действуют на всех экранах, пока их не переопределили. Брейкпоинты настраиваются через новый settings.viewport в theme.json — по умолчанию 480px и 782px, значения принимаются в px, em и rem. Блоки со стандартными supports получают адаптивность бесплатно; блоки с самодельными контролами стилей — нет, и это первая вещь для проверки в своих проектах. Редакторскую адаптивную правку можно выключить фильтром block_editor_settings_all, выставив responsiveEditingEnabled в false.

Состояния :hover и :focus. В theme.json и в редакторе можно стилизовать hover, focus, focus-visible и active для кнопок и пунктов навигации — одна из самых старых хотелок авторов тем. Заодно появилась ранняя механика кастомных состояний: пока без UI, только через theme.json.

Публичный SVG Icon API. Коллекции регистрируются через wp_register_icon_collection() и wp_register_icon(), рендер в PHP — через wp_get_icon(). Об ограничениях надо знать сразу. Санитизация жёсткая: пропускаются только <svg>, <path> и <polygon>. Атрибут fill разрешён на фигурах, но не на корневом svg, поэтому автономный вызов wp_get_icon() отрисуется чёрным цветом, а не цветом окружающего текста — задавайте свой CSS по переданному классу.

Редактор всегда в iframe. С 7.1 пост-редактор исполняется внутри iframe безусловно: независимо от темы, версий Block API у блоков и наличия legacy-метабоксов. В 7.0 это решалось по каждому посту в зависимости от содержимого, теперь условность убрали. Большинство блоков переживут смену без правок. Ломается то, что лезет к глобальному document или window — таким скриптам нужен ownerDocument/defaultView элемента внутри канвы и useRefEffect для подписок. Это изменение номер один по риску тихих поломок у плагинов с кастомными панелями.

Разметка списков постов изменилась. В changeset 62838 заголовочная ячейка строки (th scope=”row”) в списках постов переехала с колонки чекбокса на колонку заголовка. Для доступности это честная победа: скринридеры идентифицируют строку по посту, а не по чекбоксу, которого может не быть. Но разметка была стабильна с 2010 года, и её неявно касается куча расширений. Если в CSS или JS есть селекторы th.check-column или ожидания, что row actions живут в td — самое время проверить.

Abilities API в 7.1 дорастили до полноценного тулкита: фильтры жизненного цикла выполнения, кастомная валидация, общий пайплайн обнаружения, wp_get_abilities() с фильтрацией и единый флаг публичной экспозиции. Если строите AI-интеграцию — это ваш релиз.

Мелким списком, но тоже важное. React 19 снова отложен: ядро остаётся на 18.3, в Gutenberg есть экспериментальный флаг для тестирования. Блоки Playlist и Tabs наконец стабилизированы и вошли в роадмап 7.1. Появился support background.gradient — градиент теперь рендерится через background-image и может сосуществовать с фоновой картинкой, чего старый support не позволял в принципе. В Global Styles добавили text-shadow. Медиабиблиотека по умолчанию перешла на бесконечную прокрутку, а jQuery UI обновили до 1.14.2. И обновите WordPress Coding Standards до 3.4.1: в 3.4.1 закрыта уязвимость.

Чек-лист: как я обновляю клиентские сайты

Порядок, отработанный на десятках обновлений:

  1. Полный бэкап файлов и базы. Обязательно скачать его на свою машину, а не верить в то, что он «сделался».
  2. PHP отдельно, ядро отдельно. Если на хостинге 7.2 или 7.3 — сначала поднимаем PHP до 8.1+, и не на проде. Обновлять PHP и ядро одновременно — два фронта отладки вместо одного.
  3. Staging-копия. На ней обновляете плагины и темы до актуальных, потом ядро. Плагины, не готовые к 7.x, выкинут предупреждения здесь, а не на боевом сайте.
  4. Обновление ядра — через админку или wp core update в WP-CLI. После него пере-сохранить пермалинки, чтобы пересобрались правила rewrite.
  5. Smoke-тест. Главная, одиночный пост, архив, рабочая форма заказа или заявки, редактор. На 7.1 отдельно покрутить кастомные панели плагинов — из-за iframe.
  6. Прод и неделя наблюдения: логи ошибок, Search Console, поведение форм.

По срокам так. 7.0.3 — ставить немедленно, это патч безопасности. Если вы всё ещё на 6.x, окно выжидания после релиза 7.0 давно истекло: две недели на тесты в staging, и на прод. 7.1 вышла двенадцать дней назад, и по моему правилу семи-четырнадцати дней после мажора на этой неделе её как раз можно выкатывать на staging, а на прод — после проверки критичных плагинов. Новым проектам ставьте сразу 7.1: начинать свежий сайт на 6.9 смысла нет.

Итог

Если коротко: 7.0 — это фундамент, на котором в ближайшие пару лет построят AI-функциональность WordPress, плюс обновлённая админка и горстка давно напрашивавшихся блоков. 7.1 — рабочий релиз для разработчиков тем и плагинов: адаптивные стили, состояния, иконки, iframed-редактор. Совместное редактирование опять в очереди. Безопасность этим летом напомнила о себе дважды, так что откладывать обновление — худший из доступных вариантов.

А вы уже переехали на 7.x или держите проекты на 6.x до последнего? И что из нового в 7.1 радует или бесит больше всего? Расскажите в комментариях — особенно интересны истории поломок после перевода редактора в iframe.

Евгений Слесаренко
Автор

Евгений Слесаренко

Частный разработчик на Bitrix и WordPress. Пишу о том, как делать сайты и сервисы понятнее, сильнее визуально и спокойнее в поддержке.