Архивы темы для сайта

Лабиринт идей больше не пугает. Удобные архивы темы для сайта — твой личный навигатор по трендам. Сэкономь часы поиска, начни творить прямо сейчас!

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

Создание гибкой и удобной структуры архивов, одна из ключевых задач при разработке темы для WordPress. Правильно настроенные страницы архивов (рубрик, меток, дат, авторов, произвольных таксономий и типов записей) значительно улучшают навигацию, SEO и пользовательский опыт. В этой статье мы подробно разберем, как работает иерархия шаблонов, какие файлы отвечают за вывод архивов и как создавать произвольные шаблоны для уникальных задач.

Основы иерархии шаблонов WordPress

WordPress использует строгую систему принятия решений о том, какой файл темы загрузить для отображения той или иной страницы. Эта система называется иерархией шаблонов. Когда пользователь запрашивает страницу архива, ядро CMS последовательно проверяет наличие специфических файлов в папке активной темы, переходя от наиболее конкретных к общим.

Как отмечается в руководствах по разработке тем: «Если используемая вами тема включает шаблон search.php, WordPress найдет и загрузит его. В некоторых случаях вы можете использовать тему, которая не включает файлы шаблонов для типов страниц, которые вы хотите загрузить. Вот где вступает в игру иерархия шаблонов WordPress» (источник: Руководство по введению в иерархию шаблонов, 2021).

Общий принцип fallback (запасного варианта)

  • Сначала ищется самый специфичный шаблон (например, для конкретной рубрики).
  • Если не найден — ищется шаблон для типа архива (например, для всех рубрик).
  • Если и его нет, используется общий шаблон архивов archive.php.
  • В крайнем случае задействуется главный файл темы index.php.

Иерархия для стандартных таксономий (Рубрики и Метки)

Большинство тем WordPress обладают шаблоном archive.php, который используется для вывода архивов меток и рубрик, а также архивов дат и авторов. Однако для более тонкой настройки внешнего вида существует расширенная иерархия.

Архивы рубрик (Categories)

  1. category-{slug}.php — шаблон для конкретной рубрики по её ярлыку (например, category-news.php).
  2. category-{id}.php — шаблон для конкретной рубрики по её ID (например, category-5.php).
  3. category.php — общий шаблон для всех рубрик.
  4. archive.php, общий шаблон архивов.
  5. index.php — резервный вариант.

Архивы меток (Tags)

  1. tag-{slug}.php — шаблон для конкретной метки.
  2. tag-{id}.php — шаблон для метки по ID.
  3. tag.php — общий шаблон для всех меток.
  4. archive.php → index.php.

Совет: Если вы хотите добавить введение (описание, баннер, уникальный контент) к архиву категорий или тегов, можно легко создать файл пользовательского шаблона (например, category.php) вместо того, который определен по умолчанию.

Архивы произвольных типов записей (Custom Post Types) и таксономий

С появлением произвольных типов записей (CPT) и таксономий, иерархия расширилась. Это критически важно для сложных сайтов (каталоги, портфолио, каталоги товаров).

Архивы типов записей (Post Type Archives)

Для отображения списка записей произвольного типа (например, «Портфолио» или «Товары») используется следующая цепочка:

  1. archive-{post_type}.php, например, archive-portfolio.php или archive-product.php.
  2. archive.php.
  3. index.php.

Важно: Для работы этого шаблона при регистрации типа записи через register_post_type параметр has_archive должен быть установлен в true.

Архивы произвольных таксономий (Custom Taxonomies)

Если вы создали таксономию «Жанры» (genre) для типа записи «Книги», иерархия будет такой:

  1. taxonomy-{taxonomy}-{term}.php — например, taxonomy-genre-fantasy.php (конкретный термин).
  2. taxonomy-{taxonomy}.php — например, taxonomy-genre.php (все термины таксономии).
  3. taxonomy.php — общий шаблон для всех произвольных таксономий.
  4. archive.php → index.php.

Как упоминалось на Stack Overflow: «Планирую, что страница архива этого типа записи будет использовать шаблон типа archive-posttype.php, а страницы архивов для таксономий будут использовать шаблон типа taxonomy-taxonomy.php» (2019). Обратите внимание на правильное именование: archive-{post_type}.php для типов записей и taxonomy-{taxonomy}.php для таксономий.

Другие типы архивов

Помимо таксономий, WordPress генерирует архивы по датам и авторам.

Архивы дат (Date Archives)

  1. date.php, общий шаблон для всех архивов по дате (год, месяц, день).
  2. archive.php → index.php.

Архивы авторов (Author Archives)

  1. author-{nicename}.php — для конкретного автора по нику.
  2. author-{id}.php — для конкретного автора по ID.
  3. author.php — общий шаблон автора.
  4. archive.php → index.php.

Результаты поиска (Search Results)

  1. search.php.
  2. index.php;

Создание произвольной страницы архивов (Custom Archive Page)

Иногда стандартной иерархии недостаточно. Например, вам нужна страница «Все статьи» с уникальной версткой, фильтрами и пагинацией, не привязанная к конкретной таксономии. В этом случае создается произвольный шаблон страницы (Page Template).

Способ 1: Через файл page-{slug}.php или page-{id}.php

Создайте файл в корне темы, например page-archives.php. WordPress автоматически подхватит его для страницы с ярлыком «archives».

Способ 2: Через заголовочный комментарий (Рекомендуемый)

Создайте файл с любым именем (часто используют префикс tmpl- или page-, например tmpl-custom-archive.php) и добавьте в самое начало специальный комментарий:

<?php
/*
  Template Name: Произвольный архив записей
 
  • Description: Страница с кастомным выводом всех постов
*/ ?>

После этого в админке, при редактировании страницы, в блоке «Атрибуты страницы» → «Шаблон» появится вариант «Произвольный архив записей».

Внутри такого шаблона вы полностью контролируете запрос через WP_Query и вывод цикла. Как отмечается в практике: «Все названия файлов, начинающиеся с page-, будут рассматриваться как новые шаблоны страниц в пределах основной иерархии файлов WordPress тем. Именно по этой причине мы использовали префикс tmpl_)… Я хочу изменить одну строку в этом файле: … Все, что делает эта строка — это передает соответствующий контентный файл для нашей страницы архивов» (Блог про WordPress, 2015).

Лучшие практики и советы по разработке

Используйте get_template_part для DRY (Don’t Repeat Yourself)

Не дублируйте код цикла (Loop) в каждом файле архива (category.php, tag.php, archive.php). Вынесите вывод карточки записи в отдельный файл-часть, например template-parts/content-archive.php, и подключайте его:

<?php
if ( have_posts ) :
 while ( have_posts ) : the_post;
 get_template_part( 'template-parts/content', 'archive' );
 endwhile;
 the_posts_pagination;
else :
 get_template_part( 'template-parts/content', 'none' );
endif;
?>

Добавление заголовков и описаний архивов

Используйте функции the_archive_title и the_archive_description внутри <header class="page-header"> в файле archive.php или более специфичных шаблонах. Это автоматически выведет правильный заголовок («Рубрика: Новости», «Метка: WordPress», «Архив за Май 2026»).

Условные теги для логики в общих шаблонах

Если вы используете единый archive.php для всех типов архивов, внутри цикла или перед ним можно использовать условные теги для вывода уникальных элементов:

  • is_category, is_tag, is_tax
  • is_post_type_archive
  • is_author, is_date
  • is_search

Поддержка «Хлебных крошек» и SEO

Архивы — важные посадочные страницы. Убедитесь, что в <head> корректно формируются title и meta description (через Yoast SEO, Rank Math или хуки document_title_parts, wp_head). Для пагинированных страниц архивов (page/2, page/3) следите за тегами rel="next/prev" или каноническими URL.

Чек-лист файлов темы для полноценной поддержки архивов

Минимальный набор файлов в папке темы wp-content/themes/your-theme/ для комфортной работы с архивами:

Файл Назначение Приоритет
index.php Главный резервный шаблон (обязателен) Низкий (Fallback)
archive.php Базовый шаблон всех архивов Средний (База)
category.php Архивы рубрик Высокий
tag.php Архивы меток Высокий
taxonomy.php Архивы произвольных таксономий Высокий (для CPT)
archive-{cpt}.php Архив произвольного типа записи Высокий (для CPT)
author.php Архивы авторов Средний
date.php Архивы по датам Низкий
search.php Результаты поиска Высокий
404.php Страница не найдена (важно для пустых архивов) Обязателен
tmpl-*.php Произвольные шаблоны страниц (под лендинги, карты сайта) По необходимости

Грамотная работа с архивами — залог качественной структуры сайта на WordPress. Понимание иерархии шаблонов позволяет:

  • Избежать хаоса в коде и дублирования логики.
  • Создать уникальный UX для разных разделов (блог, каталог, портфолио, команда).
  • Оптимизировать SEO за счет уникальных заголовков, описаний и верстки для каждого типа архива.
  • Легко масштабировать проект при появлении новых типов контента.

Начните с создания базового archive.php с использованием get_template_part, затем по мере необходимости добавляйте специфичные файлы (category.php, archive-services.php, taxonomy-brand.php). Используйте произвольные шаблоны страниц (Template Name) для вывода сложных агрегированных архивов, выходящих за рамки стандартной таксономии.

Актуально на: . Версия WordPress 6.5+.