Gutenberg 12.9 добавляет пользовательский интерфейс блокировки блоков, автоматическую регистрацию шаблонов и полный экспорт тем
Опубликовано: 2022-03-31Сегодня Gutenberg 12.9 появился в каталоге плагинов WordPress.org, и это мощный выпуск, в котором каждый найдет что-то для себя. Даже после того, как я поработал с новыми функциями за последние несколько дней, мне еще предстоит изучить все настолько, насколько мне хотелось бы. Учитывая практическое ограничение времени, я не смогу погрузиться во все в этом посте, но я попытаюсь познакомить вас с некоторыми основными моментами.
Ниже приведены некоторые избранные элементы, в которые я не смог погрузиться, но я все же рекомендую читателям проверить:
- Название выбранного цвета теперь отображается в палитре цветов.
- Теперь пользователи могут выбирать из предлагаемого списка форматов даты или добавлять собственный формат для блока «Дата публикации». Они интернационализированы, поэтому предложения будут зависеть от региона.
- Темы могут добавлять блоки в контейнерный блок «Нет результатов», когда запрос не возвращает сообщений.
- Блок Tag Cloud теперь имеет элементы управления минимальным и максимальным размером.
- Блок Separator поддерживает новый элемент управления цветом, позволяющий пользователям выбирать прозрачные цвета.
Пользовательский интерфейс блокировки блокировки

Gutenberg 12.9 представляет новый пользовательский интерфейс для блокировки блоков. В раскрывающемся списке «Дополнительные параметры» на панели инструментов пользователи могут выбрать параметр блокировки, который откроет экран с двумя параметрами:
- Отключить движение: запрещает перемещение самого блока. Однако родственные блоки можно перемещать вокруг него.
- Предотвратить удаление: предотвращает удаление блока.
Андрей Драганеску отметил следующее в объявлении 12.9:
Когда блок заблокирован, пользователи не могут его переместить, удалить или и то, и другое. Это особенно полезно с блоками на уровне сайта, такими как Post Content, которые многие темы захотят заблокировать.
Однако это определение не полностью объясняет блокировку на уровне блоков. Есть одно предостережение: этот новый пользовательский интерфейс дает конечным пользователям ключ к замку. Технически у них уже была такая возможность через редактор кода, но теперь она доступна через интерфейс.
С точки зрения разработчика темы блокировка на уровне блоков просто требует от пользователя дополнительных действий для перемещения и/или удаления блоков. Это не «принудительная» или «постоянная» блокировка. Это долгожданная функция, но пользователи тем должны понимать ее ограничения и то, что этот новый пользовательский интерфейс предлагает пользователям больше возможностей, а не меньше.
Обновление: для разработчиков сайтов есть возможность перезаписать это. Смотрите больше в комментариях.
Поддержка Block Gap для галерей… Вроде того

Одной из функций, которая меня больше всего порадовала в этом выпуске, была добавленная поддержка интервалов между изображениями Галереи. Авторы темы полагались на специализированные стили блоков, чтобы предоставить пользователям выбор, обычно ограниченный параметрами по умолчанию и параметрами «без пробелов». Последний удалит любые промежутки между изображениями.
К сожалению, эта функция не работает в версии 12.9, когда пользователи вручную устанавливают зазор. Проверяя исходный код, он выводит Array
вместо действительного CSS. В интерфейсе отображается следующее предупреждение:
Warning: preg_match() expects parameter 2 to be string, array given in ...wp-content/plugins/gutenberg/build/block-library/blocks/gallery.php on line 51
Я уверен, что это будет исправлено в 12.9.1. До тех пор я предлагаю не использовать элемент управления «Интервал между блоками».
Предупреждение автора темы: это критическое изменение для тем, нацеленных на --gallery-block--gutter-size
, чтобы управлять зазором по умолчанию для галерей. Это ранее надежное настраиваемое свойство CSS больше не существует в коде. Непонятно, почему эту переменную вообще убрали, да и в тикете о ней не было ни слова.
Похоже, что новая --wp--style--unstable-gallery-gap
выполняет аналогичную работу. Однако, как предполагает unstable
часть его имени, он не всегда может быть рядом. Он также определен в классе .wp-container-*
вместо самой галереи. Мне еще предстоит провести достаточное количество тестов CSS, чтобы выяснить, как перезаписать его для разрыва по умолчанию. Если у кого-то есть решение, пожалуйста, напишите его в комментариях для других.
Дети, свернутые по умолчанию в представлении списка

Я часто уклонялся от представления списка в редакторе для большинства реальных сценариев, по крайней мере, для страниц с большим количеством вложенных блоков. Когда каждый уровень открыт по умолчанию, было немного кошмарно просматривать и находить определенный блок. Было проще рискнуть, щелкнув по холсту контента.

Однако последний выпуск Gutenberg может просто изменить мое использование. Версия 12.9 по умолчанию сворачивает все дочерние блоки.
Автоматическая регистрация шаблонов для тем
Авторы тем теперь могут позволить Гутенбергу обрабатывать для них регистрацию паттернов. Им достаточно соблюдать несколько правил:
- Добавьте шаблоны блоков в файлы PHP в папку
/patterns
. - Добавьте данные шаблона в заголовок файла.
- Добавьте содержание шаблона, конечно.
Отдельные файлы шаблонов должны выглядеть следующим образом:
<?php /** * Title: A Pattern Title * Slug: namespace/slug * Description: A human-friendly description. * Viewport Width: 1024 * Categories: comma, separated, values * Keywords: comma, separated, values * Block Types: comma, separated, values * Inserter: yes|no */ ?> <!-- some-block-content /-->
Обязательными являются только поля заголовка Title
и Slug
. Каждая опция соответствует аргументу функции register_block_pattern()
.
Авторы тем, которые хотят использовать эту функцию сейчас, но обеспечивают обратную совместимость с WordPress 5.9, могут проверить наличие функции gutenberg_register_theme_block_patterns()
. По крайней мере, это имя функции на данный момент.
Это изменение дополняет существующие стандарты для блочных тем. Теперь у авторов есть четкие рекомендации по регистрации большинства функций через стандартные файлы и папки:
-
/parts
— Блокировать части шаблона -
/patterns
– Шаблоны блоков -
/styles
— глобальные вариации стилей -
/templates
– заблокировать шаблоны -
theme.json
— глобальные настройки и стили.
Помимо настраиваемых стилей и вариаций блоков (не путать с глобальными вариациями стилей), охватывается почти все. Этот всесторонний набор снижает входной барьер для будущих авторов тем. Даже опытные разработчики должны оценить простоту того, как называть вещи и где их размещать. Одной заботой меньше. Также продолжится упрощение системы проверки тем WordPress.org.
Экспорт темы и создание шаблона
Говоря о снижении барьеров, создатели теперь могут создавать целую тему из редактора сайта. Ну, если предположить, что они начинают с существующей блочной темы.
Gutenberg 12.9 вводит две важные функции в процесс создания сайтов. Первый позволяет пользователям экспортировать копию своей активной темы прямо из редактора:

Загруженный ZIP-файл из этого экспорта представляет собой полнофункциональную тему. Он включает в себя все пользовательские настройки вместе с каждым файлом, который уже существует в оригинале.
Есть еще несколько вещей, которые пока недоступны в редакторе, и их нужно будет настроить вручную перед публичным выпуском. Название темы и другие данные в style.css
останутся такими же, как и в исходной теме. Также нет способа сделать снимок экрана настроенной версии и упаковать его в ZIP.
Это шаг вперед для демократизации дизайна, но необходимо учитывать и другие потоки. Пользователи должны иметь возможность экспортировать как дочернюю тему только со своими настройками или даже как файл *.json
(глобальный вариант стиля).
Но есть более непосредственный и практичный вариант использования. Пользователи могут загружать свои настроенные темы и загружать их на другой сайт.
Второе важное обновление для разработки в редакторе сайта — поддержка большего количества шаблонов. Теперь пользователи могут создавать следующие элементы из панели управления шаблонами в дополнение к существующим;
- Автор
- Категория
- Дата
- Ярлык
- Таксономия

Новые шаблоны приветствуются, но функция создания шаблонов по-прежнему имеет ограничения. Невозможно создать вариации этих шаблонов через пользовательский интерфейс, например, category-wordpress
, taxonomy-genre
или десятки других возможностей. Однако однажды это произойдет.