WordPress: как установить лимит на число публикаций в рубрике с помощью кода

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

Почему стоит ограничивать количество публикаций в рубриках

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

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

Как ограничить число публикаций в рубрике с помощью WP_Query

Самый простой способ — использовать параметр posts_per_page в запросе WP_Query или в стандартном цикле WordPress. Например, если нужно вывести в рубрике с ID 12 не более 5 публикаций, можно сделать так:

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

Этот код добавляется в файл functions.php вашей темы или в отдельный плагин. Он проверяет, что запрос идет на главную выборку, что это категория с ID 12 и выставляет лимит в 5 записей.

Параметр posts_per_page работает и с другими параметрами, например, с пагинацией. Если нужно полностью запретить большее число постов, этот метод оптимален.

Как узнать ID рубрики

Чтобы узнать ID рубрики, зайдите в админку WordPress в раздел «Записи» → «Рубрики». Наведите курсор на название нужной рубрики — в адресной строке браузера появится URL с параметром tag_ID=число. Это и есть ID рубрики.

Ограничение количества публикаций при создании новых записей

Иногда нужно запретить добавление в рубрику новых публикаций, если в ней уже заданный лимит. Для этого можно использовать хук save_post и программно проверять количество постов, запрещая публикацию.

function wpkit_limit_posts_on_save( $post_id ) {
    if ( wp_is_post_revision( $post_id ) ) {
        return;
    }

    $categories = wp_get_post_categories( $post_id );
    $limit_category_id = 12; // ID рубрики с лимитом
    $limit = 5; // максимальное число публикаций

    if ( in_array( $limit_category_id, $categories ) ) {
        $count = wp_count_posts()->publish;
        $args = array(
            'category__in' => array( $limit_category_id ),
            'post_status' => 'publish',
            'fields' => 'ids',
        );
        $posts = get_posts( $args );

        if ( count( $posts ) >= $limit ) {
            // Отменяем сохранение
            wp_die( 'Достигнут лимит публикаций в этой рубрике (' . $limit . '), добавление новых запрещено.' );
        }
    }
}
add_action( 'save_post', 'wpkit_limit_posts_on_save', 10, 1 );

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

Обратите внимание: данный подход отменяет сохранение через стандартный интерфейс. Для более продвинутых сценариев можно добавить уведомления в админке или автоматическое снятие рубрики.

Использование плагинов для ограничения публикаций

Если вы предпочитаете не писать код, существуют плагины, которые позволяют ограничивать количество постов в рубриках или таксономиях. Например:

  • Restrict Categories — позволяет настраивать права доступа для пользователей по рубрикам, ограничивая создание новых записей.
  • WP Limit Posts — помогает задать лимиты на количество публикаций в выбранных категориях.

Однако большинство подобных плагинов ориентированы на ограничение прав пользователей и не всегда дают гибкое управление с точки зрения разработчика.

Для комплексного решения часто лучше использовать кастомный код, как в примерах выше, и дополнительно оптимизировать вывод с помощью плагина Clearfy Pro, который поможет очистить базу и оптимизировать запросы в WordPress.

Как применить ограничение к пользовательским типам записей и таксономиям

Аналогичным образом можно ограничивать количество публикаций и в пользовательских типах записей (Custom Post Types) и таксономиях. Для этого в условии нужно заменить is_category() на проверку нужного типа таксономии или CPT.

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

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

Вывод и постраничная навигация при ограничении публикаций

Если вы ограничиваете число постов с помощью posts_per_page, WordPress автоматически подстраивает пагинацию. Однако если вы хотите полностью запретить переход на вторую страницу категории, можно добавить проверку и редирект:

function wpkit_disable_pagination_in_category() {
    if ( is_category( 12 ) && get_query_var( 'paged' ) > 1 ) {
        wp_redirect( get_category_link( 12 ) );
        exit;
    }
}
add_action( 'template_redirect', 'wpkit_disable_pagination_in_category' );

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

Итоговые рекомендации

  • Для простого ограничения количества публикаций на странице рубрики используйте pre_get_posts и параметр posts_per_page.
  • Чтобы запретить добавление новых записей после достижения лимита — используйте хук save_post с проверкой количества.
  • Для более сложных сценариев подключайте уведомления в админке и дополняйте логику проверками прав пользователя.
  • Используйте плагины для ускорения разработки, например Clearfy Pro для оптимизации.

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

WooCommerce: автоматическое изменение стоимости товаров при оплате с поддержкой купонов
10.07.2026
WooCommerce: как исключить товары с определёнными атрибутами из корзины
18.05.2026
WooCommerce: как заблокировать оплату при наличии товаров с определёнными атрибутами в корзине
04.07.2026
Как создать автоматический импорт постов из внешнего источника в WordPress
09.03.2026
Как отключить авторотацию изображений в WordPress
17.04.2026