Как изменить количество постов на странице архива WordPress

В стандартной установке WordPress количество постов, отображаемых на страницах архива (например, категорий, меток, авторов или временных архивов), определяется в настройках «Чтение» в административной панели. Однако часто возникает необходимость изменить это число для конкретного архива или сделать его динамическим в зависимости от условий. В этой статье мы подробно рассмотрим, как программно изменить количество постов на странице архива WordPress, а также приведем примеры с использованием плагинов.

Почему стоит менять количество постов на странице архива WordPress

По умолчанию WordPress показывает одинаковое количество записей на всех страницах блога и архивах. Но бывают ситуации, когда нужно настроить это количество индивидуально:

  • Для улучшения удобства пользователей — например, показывать больше постов в популярных категориях и меньше там, где контента мало.
  • Для оптимизации скорости загрузки — если в некоторых архивах много изображений, стоит снизить количество постов на странице.
  • Для SEO — разные настройки пагинации могут влиять на индексирование сайта.
  • Для создания уникального дизайна — например, на главной странице блога показывать 10 постов, а на странице категории — 5.

Изменение количества постов на странице архива с помощью фильтра pre_get_posts

Самый гибкий способ изменить число постов для архивов — использовать хук pre_get_posts. Этот фильтр позволяет модифицировать объект запроса WordPress до того, как он выполнится.

Ниже приведён пример функции, которая изменяет количество постов только для страниц категорий:

function wplink_change_posts_per_page_archive($query) {
    if (!is_admin() && $query->is_main_query() && $query->is_category()) {
        $query->set('posts_per_page', 7); // Указываем нужное количество постов
    }
}
add_action('pre_get_posts', 'wplink_change_posts_per_page_archive');

Объяснение кода:

  • !is_admin() — чтобы не влиять на запросы в админке.
  • $query->is_main_query() — чтобы изменить только основной запрос страницы.
  • $query->is_category() — проверяем, что сейчас отображается категория.
  • $query->set('posts_per_page', 7) — устанавливаем количество постов на странице.

Изменение для разных типов архивов

Аналогично можно изменять количество записей и для других типов архивов, например для тегов:

function wplink_change_posts_per_page_tags($query) {
    if (!is_admin() && $query->is_main_query() && $query->is_tag()) {
        $query->set('posts_per_page', 5);
    }
}
add_action('pre_get_posts', 'wplink_change_posts_per_page_tags');

Или для страниц автора:

function wplink_change_posts_per_page_author($query) {
    if (!is_admin() && $query->is_main_query() && $query->is_author()) {
        $query->set('posts_per_page', 3);
    }
}
add_action('pre_get_posts', 'wplink_change_posts_per_page_author');

Динамическое изменение количества постов в зависимости от категории

Иногда нужно устанавливать разное количество постов для каждой категории. Для этого можно получить объект категории и проверить её слаг (slug) или ID:

function wplink_dynamic_posts_per_page($query) {
    if (!is_admin() && $query->is_main_query() && $query->is_category()) {
        $category = get_queried_object();
        if ($category->slug == 'novosti') {
            $query->set('posts_per_page', 10);
        } elseif ($category->slug == 'stati') {
            $query->set('posts_per_page', 5);
        } else {
            $query->set('posts_per_page', 7); // Значение по умолчанию
        }
    }
}
add_action('pre_get_posts', 'wplink_dynamic_posts_per_page');

Такой подход позволит гибко настраивать отображение контента под разные категории и задачи.

Использование плагинов для управления количеством постов на архивах

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

  • WP Custom Posts Per Page — плагин, позволяющий задавать индивидуальное количество постов для различных архивов через интерфейс.
  • Advanced Post Pagination — расширяет возможности пагинации и настройки количества постов.
  • Clearfy Pro — универсальный плагин оптимизации, в том числе с возможностями тонкой настройки запросов и пагинации.

Для установки любого из них достаточно зайти в админку WordPress, перейти в раздел «Плагины» → «Добавить новый», ввести название и установить.

Настройка WP Custom Posts Per Page

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

Это удобный инструмент для тех, кто не хочет лезть в код, но хочет быстро управлять выводом контента.

Как проверить изменения и избежать ошибок

После внесения изменений с помощью кода или плагинов обязательно проверьте, что:

  • Количество постов меняется именно на тех страницах, для которых вы это задавали.
  • Пагинация работает корректно и ведёт на правильные страницы.
  • На сайте нет конфликтов с другими плагинами или темой, особенно с теми, которые влияют на запросы к базе.

Для отладки удобно включить режим отладки WordPress (WP_DEBUG) и использовать инструменты разработчика браузера для проверки запросов и ошибок JavaScript.

Заключение

Изменение количества постов на страницах архива — частая задача в разработке WordPress. Используя фильтр pre_get_posts, вы получаете максимальную гибкость и контроль над выводом контента. Для тех, кто предпочитает готовые решения — плагины вроде WP Custom Posts Per Page или Clearfy Pro помогут быстро настроить пагинацию без программирования.

Если хотите подробнее узнать о Clearfy Pro и его возможностях оптимизации WordPress, рекомендую ознакомиться с информацией на wpshop.ru.

Как удалить проблемы с кэшированием в WooCommerce
03.06.2026
Как удалить повышенные размеры изображений в WordPress без поддержки темы
31.05.2026
Как изменить URL для страниц WordPress с помощью функции wp_link_ru_change_page_url
08.12.2025
Как отключить отзывы на отдельных страницах WordPress
09.04.2026
Как создать собственный виджет в WordPress
08.11.2025