Перейти к содержимому
Справочник

Иерархия шаблонов блочной темы WordPress

Полная иерархия шаблонов блочной темы (FSE): для каждого типа запроса — упорядоченный список шаблонов, которые ищет WordPress, от самого специфичного к общему, с откатом до index.html. Аналог классической схемы иерархии для эпохи блоков.

Для каждого запроса WordPress ищет эти шаблоны по порядку — от самого конкретного к более общему — и останавливается на первом, который существует в папке /templates вашей темы. Цепочка всегда заканчивается файлом index.html.

Главная страница

Главная страница сайта — независимо от того, выводятся ли на ней последние записи или задана статическая страница.

  1. front-page.html
  2. home.html
  3. index.html

front-page.html wins regardless of the Settings → Reading choice. If the front page is a static page and there is no front-page.html, it falls through to the static-page chain, not home.html.

Лента записей блога

Страница со списком последних записей («страница записей» в разделе Настройки → Чтение).

  1. home.html
  2. index.html

Отдельная запись

Отдельная запись блога.

  1. single-post-{slug}.html
  2. single-post.html
  3. single.html
  4. singular.html
  5. index.html

Отдельная запись произвольного типа

Отдельная запись произвольного типа записей (например, «книга»).

  1. single-{post-type}-{slug}.html
  2. single-{post-type}.html
  3. single.html
  4. singular.html
  5. index.html

Для типа записей «book» с ярлыком «dune»: сначала single-book-dune.html, затем single-book.html, затем single.html.

Статическая страница

Обычная страница WordPress.

  1. page-{slug}.html
  2. page-{id}.html
  3. page.html
  4. singular.html
  5. index.html

Страница с произвольным шаблоном

Страница, которой в панели «Шаблон» редактора назначен произвольный шаблон.

  1. {custom-template}.html
  2. page-{slug}.html
  3. page-{id}.html
  4. page.html
  5. singular.html
  6. index.html

Произвольные шаблоны объявляются в массиве customTemplates файла theme.json и хранятся в каталоге /templates. Назначенный шаблон имеет приоритет над всей цепочкой страницы.

Архив рубрики

Архив со списком записей одной рубрики.

  1. category-{slug}.html
  2. category-{id}.html
  3. category.html
  4. archive.html
  5. index.html

Архив метки

Архив со списком записей с одной меткой.

  1. tag-{slug}.html
  2. tag-{id}.html
  3. tag.html
  4. archive.html
  5. index.html

Архив произвольной таксономии

Архив для элемента произвольной таксономии.

  1. taxonomy-{taxonomy}-{term}.html
  2. taxonomy-{taxonomy}.html
  3. taxonomy.html
  4. archive.html
  5. index.html

Архив автора

Архив записей одного автора.

  1. author-{nicename}.html
  2. author-{id}.html
  3. author.html
  4. archive.html
  5. index.html

Архив по дате

Архив по году, месяцу или дню.

  1. date.html
  2. archive.html
  3. index.html

Архив типа записей

Индекс архива произвольного типа записей, для которого задан параметр has_archive.

  1. archive-{post-type}.html
  2. archive.html
  3. index.html

Результаты поиска

Страница результатов поиска по сайту.

  1. search.html
  2. index.html

404 (не найдено)

Показывается, когда по URL не найдено подходящего содержимого.

  1. 404.html
  2. index.html

Страница вложения

Страница отдельного медиавложения.

  1. attachment.html
  2. single.html
  3. singular.html
  4. index.html

Многие сайты полностью отключают страницы вложений (это малосодержательные страницы). Если вы их оставляете, работает такая цепочка.

Страница политики конфиденциальности

Страница, назначенная политикой конфиденциальности сайта в настройках.

  1. page-privacy-policy.html
  2. privacy-policy.html
  3. page.html
  4. singular.html
  5. index.html

Чем это отличается от классической иерархии (PHP)

  • Шаблоны — это файлы .html в каталоге /templates, а не файлы .php в корне темы. Никакого single.php нет — есть single.html.
  • Переиспользуемые области (шапка, подвал) — это ЧАСТИ шаблона в каталоге /parts, которые подключаются блоком wp:template-part, а не PHP-вызовами get_header() / get_footer().
  • Здесь нет ни цепочки get_template_part(), ни get_header()/get_footer(). Компоновка выполняется блоком «Часть шаблона» внутри файлов .html.
  • index.html ОБЯЗАТЕЛЕН. block theme без templates/index.html не является валидной — это обязательный последний запасной вариант для всех перечисленных выше маршрутов.
  • Тема считается block theme по НАЛИЧИЮ файла templates/index.html вместе с theme.json, а не по какому-либо флагу в заголовке.
  • Любой из этих шаблонов можно отредактировать в редакторе сайта (Внешний вид → Редактор) и сохранить изменения в базе данных — после чего они ПЕРЕОПРЕДЕЛЯЮТ файлы темы до тех пор, пока вы не сбросите настройку. Это ставит в тупик тех, кто пытается понять, «почему изменение шаблона ничего не меняет».