Часть блочного шаблона
Оригинальное название: block template part
Коротко
Повторяемая область блочной темы WordPress — шапка, подвал, боковая колонка, — которая собрана из блоков и подключается в разные шаблоны редактора сайта.
Что такое «Часть блочного шаблона»
В блочной теме шаблон страницы — это HTML-файл из блоков. Чтобы не копировать шапку в каждый шаблон, её выносят в отдельный файл в папке parts/, например parts/header.html, и подключают одной строкой. В редакторе сайта такую часть можно открыть и изменить визуально, и правка сразу появится на всех страницах, где она используется.
Как подключается и описывается
<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
Атрибут slug указывает на файл, tagName — на HTML-элемент обёртки. Чтобы редактор знал, что это шапка, а не произвольный фрагмент, часть регистрируют в theme.json:
"templateParts": [
{ "name": "header", "title": "Шапка", "area": "header" },
{ "name": "footer", "title": "Подвал", "area": "footer" }
]
Поле area относит часть к области: шапка, подвал или общая. От этого зависит, где редактор предложит её как вариант для замены.
Где на самом деле хранятся правки
Это главный подводный камень. Пока часть не редактировали, WordPress берёт её из файла темы. Как только её изменили в редакторе сайта, создаётся запись типа wp_template_part в базе, и с этого момента используется она, а не файл. Последствия:
- новая версия темы с исправленной шапкой не применится — база перекрывает файл;
- правки, сделанные на тестовой копии сайта, не переедут на рабочую вместе с файлами;
- сбросить изменения можно командой в редакторе — тогда часть снова возьмётся из файла.
Поэтому при разработке удобно править части в редакторе, а затем экспортировать тему и переносить итоговую разметку в файлы.
Отличие от классических частей
В классических темах ту же задачу решают PHP-файлы header.php и footer.php — подробно на странице о части шаблона. Разница в том, что блочную часть редактирует владелец сайта мышью, без кода, а классическую — только разработчик в файле. Использовать блочные части можно лишь в блочных темах и в классических темах с соответствующей поддержкой.

