Иерархия шаблонов
Оригинальное название: Template Hierarchy
Коротко
Порядок, по которому WordPress выбирает файл темы для открытой страницы: от самого точного шаблона к общему, вплоть до index.php.
Что такое «Иерархия шаблонов»
Когда приходит запрос, WordPress сначала разбирает адрес и понимает, что показать: запись, рубрику, страницу поиска или ошибку 404. Затем он составляет список подходящих имён файлов, от частного к общему, и берёт первый найденный в теме. Благодаря этому можно оформить одну рубрику или одну страницу иначе, чем остальные, просто добавив файл с нужным именем. Если ничего специального нет, сработает index.php — единственный шаблон, обязательный для классической темы.
Как выглядит цепочка
- Одиночная запись:
single-{тип}-{slug}.php→single-{тип}.php→single.php→singular.php→index.php. - Страница: выбранный шаблон страницы →
page-{slug}.php→page-{id}.php→page.php→singular.php→index.php. - Рубрика:
category-{slug}.php→category-{id}.php→category.php→archive.php→index.php. - Главная:
front-page.php, затемhome.phpили шаблон страницы — в зависимости от настроек чтения. - Отдельно:
search.php,404.php,author.php,date.php.
В блочных темах цепочка та же, только файлы лежат в папке templates/ и имеют расширение .html. Если используется дочерняя тема, на каждом шаге сначала проверяется она.
Как вмешаться из кода
Иногда нужный шаблон зависит не от имени, а от условия — например, для рубрик с определённым полем. Тогда используют фильтр template_include:
add_filter( 'template_include', function ( $template ) {
if ( is_category() && get_term_meta( get_queried_object_id(), 'is_landing', true ) ) {
$landing = locate_template( 'category-landing.php' );
return $landing ?: $template;
}
return $template;
} );
Функция locate_template() учитывает дочернюю тему, поэтому файл можно переопределить и там.
Как понять, какой файл сработал
Самый быстрый способ — плагин Query Monitor: на панели администратора он показывает использованный шаблон и всю цепочку кандидатов. Частые причины «правлю файл, а ничего не меняется»: правка в родительской теме при наличии такого же файла в дочерней, опечатка в slug рубрики, файл в подпапке, где WordPress его не ищет, а в блочной теме — сохранённая в базе копия шаблона.

