Как изменить количество постов в выводах WordPress без плагинов

|

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

Зачем менять количество постов в выводах WordPress?

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

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

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

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

Рассмотрим пример функции, меняющей количество постов для главной страницы блога:

function wpzoom_change_posts_per_page_main( $query ) {
    if ( !is_admin() && $query->is_main_query() && $query->is_home() ) {
        $query->set( 'posts_per_page', 5 ); // Выводить 5 постов на главной
    }
}
add_action( 'pre_get_posts', 'wpzoom_change_posts_per_page_main' );

Этот код нужно добавить в файл functions.php вашей темы или в собственный плагин.

Объяснение:

Изменение количества постов на страницах категорий и тегов

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

function wpzoom_change_posts_per_page_taxonomies( $query ) {
    if ( !is_admin() && $query->is_main_query() && ( $query->is_category() || $query->is_tag() ) ) {
        $query->set( 'posts_per_page', 10 ); // 10 постов на категориях и тегах
    }
}
add_action( 'pre_get_posts', 'wpzoom_change_posts_per_page_taxonomies' );

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

Изменение количества постов на странице поиска

Для страницы результатов поиска:

function wpzoom_change_posts_per_page_search( $query ) {
    if ( !is_admin() && $query->is_main_query() && $query->is_search() ) {
        $query->set( 'posts_per_page', 7 ); // 7 постов на странице поиска
    }
}
add_action( 'pre_get_posts', 'wpzoom_change_posts_per_page_search' );

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

Если на сайте используются кастомные типы записей (Custom Post Types), количество постов для их архивов можно задать так:

function wpzoom_change_posts_per_page_cpt( $query ) {
    if ( !is_admin() && $query->is_main_query() && is_post_type_archive( 'your_cpt' ) ) {
        $query->set( 'posts_per_page', 8 ); // 8 постов на архиве CPT 'your_cpt'
    }
}
add_action( 'pre_get_posts', 'wpzoom_change_posts_per_page_cpt' );

Замените your_cpt на слаг вашего типа записей.

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

Иногда полезно предоставить возможность выводить посты с разным количеством через шорткод. Вот пример шорткода, который выводит последние записи с заданным количеством:

function wpzoom_posts_list_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'count' => 5,
    ), $atts, 'wpzoom_posts' );

    $args = array(
        'posts_per_page' => intval( $atts['count'] ),
        'post_status' => 'publish',
    );

    $query = new WP_Query( $args );
    $output = '<ul>';
    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) {
            $query->the_post();
            $output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
        }
    } else {
        $output .= '<li>Посты не найдены.</li>';
    }
    wp_reset_postdata();
    $output .= '</ul>';
    return $output;
}
add_shortcode( 'wpzoom_posts', 'wpzoom_posts_list_shortcode' );

Используйте шорткод [wpzoom_posts count="3"] для вывода 3 последних постов.

Рекомендации и лучшие практики

Изменяя количество постов программно, учитывайте следующие моменты:

Использование плагина Clearfy для управления выводом постов

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

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

Выводы

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

Как изменить количество постов в выводах WordPress без плагинов
03.04.2026
Как создать фильтр по авторам в WordPress с поддержкой AJAX
31.03.2026
Автоматическое удаление спама в комментариях WordPress: лучшие плагины и примеры кода
29.12.2025
Как создать собственный шорткод в WordPress с примерами
01.11.2025
WooCommerce: автоматическое изменение стоимости товаров при акциях без плагинов
11.06.2026
×
WPShop
партнерка без «но»!

До 3225₽ за каждую продажу

Подключиться к игре