Gutenberg — блочный редактор WordPress, где страница собирается из отдельных блоков: абзацев, изображений, колонок, кнопок. С версии 5.9 к нему добавилось полное редактирование сайта (FSE), поэтому блоками можно управлять не только контентом, но и шапкой, футером и шаблонами страниц. Ниже — как ускорить работу редакторов паттернами и как безопасно настроить собственные шаблоны.
Чем блок-паттерн отличается от обычного блока
Блок — это один элемент: параграф, изображение, кнопка. Паттерн — заранее собранная группа блоков с готовой версткой, например блок «три колонки с иконками» или «форма отзыва». Редактор вставляет паттерн одним кликом и потом меняет только текст и картинки, не собирая структуру заново.
Паттерны хранятся либо в теме (PHP-файл), либо создаются прямо в редакторе и сохраняются в базу как отдельный тип записи wp_block. Второй способ проще для контент-менеджера, первый — надежнее при переносе и обновлении темы.
Как зарегистрировать свой паттерн в теме
Паттерн темы — обычный PHP-файл с блочной разметкой в комментариях. Он живет в папке patterns/ внутри темы и подключается автоматически, если в theme.json указана поддержка.
<?php
/**
* Title: Три преимущества с иконками
* Slug: mytheme/features-three
* Categories: featured
*/
?>
<!-- wp:columns -->
<div>
<!-- wp:column -->
<div>
<!-- wp:heading {"level":3} -->
<h3>Быстрый старт</h3>
<!-- /wp:heading -->
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
После сохранения файла паттерн появится во вкладке «Паттерны» редактора без установки плагинов. Такой файл легко хранить в git и переносить между окружениями вместе с дочерней темой.
Как сделать собственный шаблон страницы через FSE
Полное редактирование сайта работает только с блочными темами (у которых есть theme.json). Свой шаблон создается в разделе «Внешний вид → Редактор → Шаблоны → Добавить новый». Он тоже сохраняется как файл в папке templates/ темы, если экспортировать изменения через «Инструменты → Экспорт».
Частая задача — отдельный шаблон для лендингов без шапки и футера. Создайте шаблон page-landing.html, уберите из него блоки шапки и подвала, затем в настройках нужной страницы выберите этот шаблон в блоке «Шаблон страницы» на боковой панели.
Как ограничить набор блоков для редакторов
Если в команде несколько авторов без опыта верстки, лишние блоки (HTML, Query Loop, произвольный CSS) только мешают. Ограничить список можно фильтром в functions.php дочерней темы.
<?php
add_filter('allowed_block_types_all', function ($allowed, $context) {
return array(
'core/paragraph',
'core/heading',
'core/image',
'core/list',
'core/quote',
'core/button',
);
}, 10, 2);
Правки в functions.php вступают в силу сразу, без активации плагина, но их стоит вносить только в дочернюю тему — при обновлении родительской темы файл перезапишется.
Паттерны, шаблоны и блоки: что выбрать
| Инструмент | Что меняет | Где хранится | Для кого |
|---|---|---|---|
| Блок | один элемент контента | тело записи | любой автор |
| Паттерн | готовый набор блоков | тема или база данных | контент-менеджер |
| Шаблон страницы | структуру всей страницы | файл темы (FSE) | верстальщик |
| Шаблон блока (block template) | фиксированный набор блоков для типа записи | PHP-код темы | разработчик |
Частые ошибки при работе с блоками
Белый экран после добавления паттерна почти всегда означает синтаксическую ошибку в PHP-файле паттерна — пропущенную скобку или незакрытый комментарий блока. Порядок диагностики такой же, как для любого фатального сбоя WordPress: включить WP_DEBUG, посмотреть wp-content/debug.log, при необходимости — подробный разбор в статье про белый экран и ошибку 500.
Вторая частая проблема — конфликт паттернов из плагина конструктора страниц с паттернами темы: у обоих может быть одинаковый Slug. Переименуйте slug паттерна темы, добавив префикс с названием проекта.
Итог
- Паттерны ускоряют набор типового контента и не требуют плагинов, если тема их поддерживает.
- Свои шаблоны страниц доступны только в блочных темах с FSE и хранятся как HTML-файлы в теме.
- Список блоков для авторов стоит сузить фильтром
allowed_block_types_allв дочерней теме. - Данные Gutenberg читаются и через REST API WordPress — это пригодится, если часть контента выводится на внешнем фронтенде.
- Кастомизацию всегда делайте в дочерней теме, иначе обновление родительской темы удалит правки.