# Gutenberg WordPress: блоки, паттерны и шаблоны сайта

> Редактор Gutenberg в WordPress: как создавать блок-паттерны, собственные шаблоны сайта через FSE и ограничивать набор блоков для редакторов без плагинов.

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](https://www.zevshost.net/ru/kb/wordpress-belyy-ekran-oshibka-500/).

Вторая частая проблема — конфликт паттернов из плагина конструктора страниц с паттернами темы: у обоих может быть одинаковый `Slug`. Переименуйте slug паттерна темы, добавив префикс с названием проекта.

## Итог

- Паттерны ускоряют набор типового контента и не требуют плагинов, если тема их поддерживает.
- Свои шаблоны страниц доступны только в блочных темах с FSE и хранятся как HTML-файлы в теме.
- Список блоков для авторов стоит сузить фильтром `allowed_block_types_all` в дочерней теме.
- Данные Gutenberg читаются и через [REST API WordPress](https://www.zevshost.net/ru/kb/wordpress-rest-api/) — это пригодится, если часть контента выводится на внешнем фронтенде.
- Кастомизацию всегда делайте в дочерней теме, иначе обновление родительской темы удалит правки.

---

Источник: https://www.zevshost.net/ru/kb/wordpress-gutenberg-bloki/
