Создание удобной и функциональной страницы архивов — важная задача для любого владельца сайта на WordPress. По умолчанию CMS автоматически генерирует архивы по рубрикам, меткам, датам и авторам, однако часто требуется единая страница архива, собирающая все публикации в одном месте, или специализированный архив для произвольных типов записей (CPT). В этой статье мы подробно разберем способы реализации: от простых шорткодов до создания собственных шаблонов темы.
Почему стандартных архивов может быть недостаточно
Согласно информации из открытых источников, разработчики WordPress не предусмотрели отдельной страницы «Архив сайта» по умолчанию. Стандартные архивы разрознены:
- Архивы по рубрикам (
/category/name/) - Архивы по меткам (
/tag/name/) - Архивы по датам (
/2024/05/) - Архивы авторов (
/author/name/)
Как отмечают эксперты (например, на ресурсе World-X и в учебных пособиях), страницы архивов тем часто состоят просто из списка публикаций без детальных пояснений или навигации. Для улучшения UX и SEO необходимо создать централизованную точку входа в историю контента.
Способ 1: Создание страницы архивов через шорткоды (Без кода)
Это самый простой метод для начинающих. Он не требует редактирования файлов темы и работает через админку.
Плагин Display Posts Shortcode
Один из популярных решений, плагин Display Posts Shortcode. После установки создайте новую страницу (например, «Архив статей») и вставьте шорткод:
[display-posts posts_per_page="1000" order="DESC" include_date="true" date_format="d.m.Y"] Параметры шорткода:
posts_per_page="1000", выводит до 1000 записей (по сути, все).order="DESC", сортировка от новых к старым.include_date="true"— показывает дату публикации.taxonomy="category" tax_term="news"— фильтр по рубрике (опционально).
Также можно использовать шорткоды для вывода списка рубрик, тегов или архивов по месяцам, комбинируя их на одной странице.
Способ 2: Произвольный шаблон страницы (Page Template)
Более гибкий способ, создать собственный PHP-шаблон для страницы. Это позволяет использовать полную мощь WP_Query и кастомную верстку.
Пошаговая инструкция:
- Подключитесь к сайту по FTP или через файловый менеджер хостинга.
- Перейдите в папку активной темы:
/wp-content/themes/ваша-тема/. - Создайте файл, например
template-archive-all.php. - В самое начало файла добавьте шаблона:
<?php
/*
Template Name: Страница полного архива
*/
?> - Добавьте код вывода цикла (Loop) с пагинацией:
<?php get_header; ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<h1 class="page-"><?php the_; ?></h1>
<?php
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'post', // или 'any' для всех типов
'posts_per_page' => 20, // кол-во на странице
'paged' => $paged,
'orderby' => 'date',
'order' => 'DESC',
);
$archive_query = new WP_Query( $args );
if ( $archive_query->have_posts ) : ?>
<ul class="archive-list">
<?php while ( $archive_query->have_posts ) : $archive_query->the_post; ?>
<li>
<a href="<?php the_permalink; ?>"><?php the_; ?></a>
<span class="date"><?php the_time('d.m.Y'); ?></span>
<span class="category"><?php the_category(', '); ?></span>
</li>
<?php endwhile; ?>
</ul>
<?php
// Пагинация
the_posts_pagination( array(
'prev_text' => '« Назад',
'next_text' => 'Вперед »',
) );
?>
<?php else : ?>
<p>Записей не найдено.</p>
<?php endif;
wp_reset_postdata; ?>
</main>
</div>
<?php get_sidebar; ?>
<?php get_footer; ?> - Сохраните файл.
- В админке создайте страницу («Страницы» → «Добавить новую»), назовите её «Архив».
- В блоке «Атрибуты страницы» (справа) в выпадающем списке «Шаблон» выберите «Страница полного архива».
- Опубликуйте страницу.
Способ 3: Архивы для произвольных типов записей (CPT)
Если вы используете Custom Post Types (например, «Портфолио», «Товары», «События»), WordPress может автоматически генерировать для них архивы, но нужно правильно их зарегистрировать.
Условия автоматического создания архива:
При регистрации типа записи через register_post_type необходимо установить параметры:
'has_archive' => true(или строка слага, например'has_archive' => 'portfolio')'public' => true'rewrite' => array('slug' => 'portfolio')
Пример: Если слаг CPT — deals, архив будет доступен по адресу site.com/deals/ (как указано в источнике WPinCode.com).
Создание кастомного шаблона архива CPT
Для переопределения внешнего вида архива конкретного типа записи создайте файл в корне темы по иерархии шаблонов:
archive-{post_type}.php— например,archive-portfolio.php.- Если файла нет, используется
archive.php, затемindex.php.
Важный нюанс от Stack Overflow: Нельзя одновременно иметь обычную страницу со слагом /news/ и тип записи со слагом /news/ (параметр has_archive). Это вызовет конфликт пермалинков. Решение — использовать шаблон archive-news.php для типа записи и не создавать страницу с таким же слагом.
Продвинутая страница архивов: Виджеты и структурированные данные
Для профессионального решения (как описано в обзоре 2015 года на «Блоге про WordPress») страница архивов должна включать:
- Стандартный контент страницы (вступление, текст, изображения, формы).
- Список последних записей (настраиваемое количество, например, 15 шт.).
- Ссылки на авторские архивы.
- Ссылки на месячные архивы (компактный выпадающий список или список).
- Области виджетов (Sidebars) для вывода: популярных статей, облака тегов, рубрик, поиска.
Реализация этого требует регистрации дополнительных сайдбаров в functions.php и их вызова в шаблоне страницы архива через dynamic_sidebar.
SEO и оформление архивов
Как указывает ресурс WordPress для всех, авторы тем часто игнорируют оформление архивов. Для улучшения ранжирования и удобства пользователей:
- Добавьте уникальное описание (контент) на страницу архива (через редактор страницы, если используете Page Template, или через настройки таксономий/плагины SEO).
- Используйте заголовки
H1(название архива),H2(группы по годам/рубрикам). - Настройте
rel="next/prev"или пагинацию для больших архивов. - Добавьте микроразметку
Schema.org/BlogилиItemListдля списка статей.
Резюме: что выбрать?
| Метод | Сложность | Гибкость | Для чего подходит |
|---|---|---|---|
| Шорткод (Display Posts) | Низкая | Средняя | Блогеры, простые сайты, быстрый запуск без кода. |
| Page Template (WP_Query) | Средняя | Высокая | Кастомный дизайн, сложная фильтрация, объединение типов записей. |
| Archive-{CPT}.php | Средняя/Высокая | Максимальная | Проекты с произвольными типами записей (портфолио, каталоги). |
| Плагины архивов (Simple Yearly Archive и др.) | Низкая | Средняя | Автоматическая структура по годам/месяцам без программирования. |
«Распечатать архив на сайте» в контексте WordPress означает создать удобный интерфейс для навигации по истории публикаций. Выбор метода зависит от ваших технических навыков и требований проекта. Для большинства стандартных блогов достаточно шорткода или плагина; Для сложных проектов с CPT и уникальным дизайном — необходимы кастомные шаблоны (archive-{cpt}.php или Page Templates). Не забывайте про пагинацию, SEO-описания и мобильную адаптивность верстки списка записей.
Информация актуализирована на основе данных за 2015–2025 гг. (источники: WPinCode, Stack Overflow на русском, World-X, WordPress для всех). Конфиденциальные данные (имена пользователей, рейтинги на форумах) замаскированы.