Что нового для WP-разработчиков? Ноябрь 2023

WordPress 6.4 был успешно выпущен 7 ноября 2023 года и является последним крупным выпуском в этом году.

Самое важное, что вам следует проверить, — это руководство по полям в WordPress 6.4. Он проведет вас через все основные изменения, о которых вам нужно знать в последней версии.

Большая часть этого выпуска нашего ежемесячного обзора будет включать изменения, которые уже появились в WordPress 6.4. Читайте дальше, если вы все еще играете в догонялки. Вы также узнаете о некоторых функциях, которые все еще находятся в разработке, поэтому обязательно установите и активируйте последнюю версию плагина Gutenberg, чтобы протестировать их.

Основные моменты

Поддержка переименования блоков для практически всех блоков

Два панели, показанные рядом друг с другом. Первый – поле “Переименовать” для настройки имени блока. Второй – представление списка в редакторе блоков с выделенным блоком, который будет переименован.

Начиная с Gutenberg 16.9, вы можете переименовывать практически любой блок в WordPress в пользовательском интерфейсе. Пользовательские имена блоков хранятся как метаданные в разметке блока, что означает, что они также могут быть перенесены в шаблоны. Используя эту новую функцию, вы можете значительно улучшить опыт пользователей, которые могут редактировать вашу тему в редакторе сайта.

Есть несколько особых блоков, где переименование отключено:

  • core/block
  • core/template-part
  • core/pattern
  • core/navigation

Экспериментальные блоки для форм и контактов

Экспериментальный блок формы с полями имени, электронной почты и комментария с кнопкой отправки в редакторе блоков.

Gutenberg 16.9 представил экспериментальные блоки core/form и core/form-input. Они могут потенциально стать основой для плагинов, которым в будущем понадобятся поля форм на фронтенде.

Gutenberg 17.0 добавил поддержку использования блоков Group и Columns в блоке Form.

Функционал находится на высокой степени экспериментальности в настоящее время и не готов для использования за пределами базового тестирования. Вы можете включить его через панель администратора Gutenberg > Эксперименты. Сейчас это идеальное время для разработчиков плагинов форм начать тестирование и принять участие в разработке.

Продолжается работа над представлениями данных

Редактор сайта WordPress просматривает подэкран “Все страницы”, на котором перечислены пять страниц в таблице. Есть несколько полей для организации страниц по различным метаданным.

Работа над переделанным дизайном администратора продолжается в плагине Gutenberg, особенно в области управления страницами и представлениями данных. Чтобы протестировать последние изменения, необходимо включить опцию New admin views на экране администратора Gutenberg > Experiments.

В плагине было внесено десятки изменений, слишком много, чтобы перечислить их в этом сообщении. Чтобы ознакомиться с изменениями в коде, посмотрите закрытые темы по представлениям данных в репозитории Gutenberg.

Переделка административного интерфейса будет значительным изменением в пользовательском опыте и в конечном итоге повлияет на множество плагинов в будущем обновлении WordPress. Эти изменения не те, на которых стоит спать. Важно проводить тестирование рано и часто, предоставляя обратную связь по ходу работы.

Основные изменения

Отключение страниц вложений для новых установок

С выпуском WordPress 6.4 страницы вложений отключены на новых установках. Повторяю: это касается только новых установок.

Внесено новое опцию в базу данных с именем wp_attachment_pages_enabled, которая устанавливается в 0 для новых установок и 1 для существующих установок. Вы можете фильтровать эту опцию с помощью хуков [option_{$option}](<https://developer.wordpress.org/reference/hooks/option_option/>) или [pre_option_{$option}](<https://developer.wordpress.org/reference/hooks/pre_option_option/>).

На фронтенде нет варианта включения страниц вложений через пользовательский интерфейс (за исключением скрытого экрана wp-admin/options.php), но есть плагин, связанный с исходной темой Trac, для тех, кто хочет включить их для новых установок.

Устаревшие константы TEMPLATEPATH и STYLESHEET

Хотя константы TEMPLATEPATH и STYLESHEETPATH давно не рекомендуется использовать разработчиками, они все еще использовались в нескольких местах в ядре. WordPress 6.4 теперь официально отказался от их использования.

Это изменение не должно повлиять на темы в каталоге, так как Theme Check блокирует представление тем, если они используют эти константы. Если вы используете их в теме вне каталога или плагине, вам следует переключиться на их функциональные аналоги:

  • get_template_directory()
  • get_stylesheet_directory()

Плагины и инструменты

Переход от WordPress/Element к React

После обсуждения, начавшегося в августе 2023 года, разработчики решили использовать React напрямую вместо обертки @wordpress/element в Gutenberg 16.8. Несколько документаций были обновлены для отражения этого изменения.

Фреймворк для редакций метаданных записи

В WordPress 6.4 был добавлен новый фреймворк для хранения редакций метаданных записи. Эта функция является необязательной, и для ее включения необходимо установить аргумент revisions_enabled в функции register_post_meta(). Также есть несколько доступных action и filter hooks для дальнейшей настройки работы с редакциями.

Новый слот PluginPostExcerpt

Gutenberg 16.9 представил новый слот <PluginPostExcerpt />. Этот новый слот позволяет расширить панель Отрывка в редакторе записей для добавления пользовательских компонентов.

Новый компонент Tabs для замены TabPanel

В Gutenberg 16.9 был добавлен новый компонент [<Tabs />](https://github.com/WordPress/gutenberg/pull/53960). Он заменяет существующий компонент <TabsPanel /> и имеет три подкомпонента:

  • Tabs.TabList
  • Tabs.Tab
  • Tabs.TabPanel

Пакет Create Block добавляет свойство transformer

В пакете Create Block теперь есть новое свойство transformer. Это изменение позволяет настраивать шаблоны, предоставляя почти полный контроль над тем, как они могут использоваться для создания плагинов или блоков.

Получение данных пагинации с помощью getEntityRecords()

Начиная с Gutenberg 16.9, getEntityRecords() возвращает общее количество элементов и страниц, когда вы вызываете эту функцию. Эти данные сохраняются в свойствах totalItems и totalPages. Эти данные также автоматически доступны через хук [useEntityRecords()](https://developer.wordpress.org/news/2023/05/useentityrecords-an-easier-way-to-fetch-wordpress-data/).

Новые фильтрующие hooks для Filesystem API

В WordPress 6.4 были добавлены два новых фильтрующих hooks для Filesystem API, которые срабатывают при разархивации архива:

  • pre_unzip_file позволяет прервать процедуру и запустить пользовательский процесс.
  • unzip_file выполняется после разархивации архива.

Новое поле block_hooks

В WordPress 6.4 было добавлено новое поле [block_hooks](https://core.trac.wordpress.org/ticket/59346) для регистрации типа блока и REST API. Это поле было необходимо для введения нового Block Hooks API, функционала, который предоставляет механизм расширяемости для динамических блоков.

Обновления медиа/вложений

WordPress 6.4 включает несколько обновлений обработки медиа. Во-первых, было изменено название фильтрующего hook get_available_post_mime_types(), который был введен ранее в ходе разработки. Теперь он называется pre_get_available_post_mime_types для большей ясности. Убедитесь, что вы обновляете все ссылки на этот hook в своих плагинах, если вы уже использовали его.

Функция wp_get_loading_optimization_attributes() теперь поддерживает произвольные контексты, а не только те, которые поддерживает сам ядро WordPress, что позволяет использовать пользовательские контексты при отображении изображений. Вместе с этим обновлением появился новый фильтрующий hook wp_loading_optimization_force_header_contexts.

Также было добавлено два новых фильтрующих hooks, которые позволяют настраивать результаты функции wp_get_loading_optimization_attributes():

  • wp_get_loading_optimization_attributes для настройки результатов после логики WordPress.
  • pre_wp_get_loading_optimization_attributes для прерывания функции и создания собственной логики.

Обновления HTML API

HTML API получил несколько обновлений в WordPress 6.4:

Устаревания HTTP API

Если вы используете HTTP API, проверьте эти классы и хуки, которые были объявлены устаревшими в WordPress 6.4, и обновите свой код при необходимости:

Обход кэша WP_Term_Query с новым параметром

WordPress 6.4 вводит параметр [cache_results](https://core.trac.wordpress.org/ticket/52710) для класса WP_Term_Query. Это изменение приносит его в соответствие с WP_Query и WP_User_Query, позволяя обходить кэш запросов.

Обновления страниц входа и регистрации

В WordPress 6.4 были внесены некоторые изменения на страницы входа и регистрации:

  • URL [/login.php теперь является псевдонимом](https://core.trac.wordpress.org/changeset/56718) для страницы входа.
  • Были внесены несколько улучшений в HTML для сообщений и ошибок при входе и регистрации.
  • Были добавлены новые CSS классы для ссылок на этих страницах:
    • .wp-login-log-in
    • .wp-login-register
    • .wp-login-lost-password

Если ваш плагин или тема настраивает эти страницы, убедитесь, что вы тестируете их работу с этими изменениями. Вы можете узнать больше об этих обновлениях в заметке разработчика.

Обновления KSES

Функция wp_trigger_error() в WordPress 6.4 обрабатывает контент с помощью wp_kses() с ограниченным набором HTML:

  • <a href> (разрешены протоколы http и https)
  • <code>
  • <em>
  • <strong>

В список безопасных CSS свойств было добавлено свойство writing-mode.

Темы

Удаление соотношений сторон

Gutenberg 16.9 удалил соотношения сторон 10:16 и 16:10 из всех экземпляров. Это не должно повлиять на большинство тем. Но вам следует проверить, использовали ли вы это соотношение сторон в каких-либо шаблонах или шаблонах для изображений.

Часть шаблона откатывается к активной теме

Если блок Части шаблона не имеет определенного атрибута theme, он автоматически откатится к значению get_stylesheet() (текущая активная тема).

Поддержка относительных единиц CSS уровня 4, связанных с видимостью

В Gutenberg 16.9 была введена широкая поддержка относительных единиц CSS, связанных с видимостью. По умолчанию они не отображаются, но вы можете включить их через свойство [settings.spacing.units](<https://developer.wordpress.org/themes/global-settings-and-styles/settings/spacing/#defining-allowed-spacing-units>) в theme.json. Единицы контейнерного запроса по-прежнему не поддерживаются, несмотря на практически такую же поддержку браузера (хотя их можно использовать при ручном определении предустановок для промежутков и размера шрифта).

Обновления шаблонов

Есть два изменения, о которых вам следует знать в процессе разработки:

  • Добавлена новая таксономия [wp_pattern_category (связанная с типом записи wp_block) для хранения созданных пользователями шаблонов.
  • Категория шаблона media была разделена на отдельные категории (https://github.com/WordPress/gutenberg/pull/55236) (уже существовала категория gallery).

Ниже приведены изменения в пользовательском интерфейсе, которые должны облегчить создание и тестирование шаблонов:

Блок описания термина в WordPress

С версией 6.4 блок Описание термина был перенесен в WordPress, что означает, что вы можете начать использовать его в шаблонах и шаблонах темы. Ранее он был доступен только в плагине Gutenberg.

Исправление ошибок

Теперь вы можете насладиться несколькими исправлениями ошибок, которые были внесены в последних нескольких релизах Gutenberg:

События и ресурсы

Узнайте о WordPress

За последний месяц на сайте Learn WordPress появилось пять новых учебных руководств:

Часы разработчика и встречи в коридоре

За последний месяц были проведены две прямые трансляции, посвященные разработчикам, и вы можете посмотреть их на WordPress TV:

Блог разработчика

Помимо нашего регулярного ежемесячного обновления в блоге разработчика, было опубликовано одно учебное руководство:

Источник: https://developer.wordpress.org/news/2023/11/whats-new-for-developers-november-2023/

Фото аватара
Evgeniy Rezanov
Статей: 8

Ответить

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