Как отключить пагинацию в WordPress без плагинов

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

Что такое пагинация и почему её отключают

Пагинация — это механизм деления контента на страницы. В WordPress по умолчанию архивы, главная страница блога, категории и другие шаблоны выводят записи частями, например, по 10 штук на страницу.

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

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

Отключение пагинации в WordPress: базовый метод

Для вывода всех записей сразу в цикле WordPress достаточно изменить параметр posts_per_page. По умолчанию он равен значению из настроек — обычно 10.

Чтобы вывести все записи, установим posts_per_page в -1. Это значит «без ограничений».

Самый простой способ — добавить фильтр pre_get_posts в файл functions.php вашей темы:

function wpmagazin_disable_pagination( $query ) {
    if ( ! is_admin() && $query->is_main_query() ) {
        if ( is_home() || is_archive() ) {
            $query->set( 'posts_per_page', -1 );
        }
    }
}
add_action( 'pre_get_posts', 'wpmagazin_disable_pagination' );

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

Подробности работы кода

  • ! is_admin() исключает административную панель;
  • $query->is_main_query() проверяет, что мы изменяем главный запрос WordPress;
  • В условии is_home() || is_archive() указаны типы страниц, где отключаем пагинацию;
  • Устанавливаем posts_per_page = -1, чтобы вывести все записи.

Как отключить пагинацию для пользовательских запросов и страниц

Если у вас есть собственные шаблоны с WP_Query или get_posts, в них тоже нужно явно указать параметр posts_per_page:

$args = array(
    'post_type' => 'post',
    'posts_per_page' => -1,
);
$query = new WP_Query( $args );

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

Например, если вы выводите портфолио, каталог или список товаров, убедитесь, что в вашем коде установлен posts_per_page = -1.

Пример отключения пагинации в шаблоне

<?php
$args = array(
    'post_type' => 'product',
    'posts_per_page' => -1, // выводим все
);
$products = new WP_Query( $args );
if ( $products->have_posts() ) :
    while ( $products->have_posts() ) : $products->the_post();
        the_title('<h2>','</h2>');
        the_excerpt();
    endwhile;
    wp_reset_postdata();
endif;
?>

SEO и производительность при отключении пагинации

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

Чтобы минимизировать риски, рекомендуем:

  • Ограничивать вывод в 100-200 записей, если это возможно, вместо полного вывода всех с -1;
  • Использовать кэширование, например с помощью плагина Clearfy Pro, для снижения нагрузки;
  • Оптимизировать запросы, исключая ненужные поля и таксономии;
  • Подгружать записи асинхронно через AJAX, если данных слишком много;
  • Добавить на страницу элементы навигации или фильтры для удобства пользователей.

Отключение пагинации в плагинах и темах WPSHOP

Если вы используете тему Root или Reboot, а также плагин WPRemark, можно использовать их встроенные настройки для управления пагинацией.

Например, в Root часто есть опция переключения пагинации на бесконечную прокрутку или вывод всех записей. В WPRemark можно настроить количество отзывов для вывода без пагинации.

Для более тонкой настройки используйте фильтр pre_get_posts с учетом условий плагинов и тем, чтобы не нарушить их логику.

Заключение: практические рекомендации

Отключение пагинации — простая задача, если знать, где и как менять параметр posts_per_page. Главное — не забывать о последствиях на производительность и SEO, особенно при больших объемах данных.

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

Если хотите расширить функционал управления выводом записей, обратите внимание на продукты Clearfy Pro и темы Root и Reboot.

Как отслеживать и решать проблемы с остановкой запросов в WordPress
12.02.2026
Как удалить или отключить комментарии в WordPress на определённых страницах
17.01.2026
Как изменить URL автора в WordPress без изменения ссылок постов
05.12.2025
Как создать адаптивные блоки в WordPress с помощью Gutenberg
22.01.2026
Как удалить или изменить атрибуты товара в WooCommerce через код
20.04.2026