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

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

Почему стоит удалять пагинацию вручную? Проблемы с плагинами пагинации

Многие пользователи сразу идут искать плагин для управления или удаления пагинации. Но часто это приводит к избыточным нагрузкам и конфликтам с другими компонентами сайта. Удаление пагинации вручную позволяет:

  • Избежать лишних запросов к базе данных и скриптов;
  • Сделать код сайта более легким и понятным;
  • Получить точный контроль над поведением вывода записей на страницах.

Кроме того, плагин может не всегда корректно работать с кастомными запросами в шаблоне или конфликтовать с другими плагинами.

Удаление пагинации на уровне основного запроса WordPress

В WordPress пагинация обычно реализована через параметр paged в основном запросе. Чтобы вывести все записи на одной странице и убрать пагинацию, нужно изменить параметр posts_per_page на максимально возможное число, например -1 (вывод всех записей). Сделать это можно с помощью хука wppagenavi_pre_get_posts, который мы создадим на основе стандартного pre_get_posts с префиксом домена.

function wppagenavi_pre_get_posts_remove_pagination( $query ) {
    if ( !is_admin() && $query->is_main_query() ) {
        // Убираем пагинацию, выводим все записи
        $query->set( 'posts_per_page', -1 );
        // Обязательно сбрасываем параметр 'paged', чтобы не было ошибок
        $query->set( 'paged', 1 );
    }
}
add_action( 'pre_get_posts', 'wppagenavi_pre_get_posts_remove_pagination' );

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

Особенности и подводные камни

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

Также стоит проверить шаблоны темы: если в них явно вызывается функция пагинации (the_posts_pagination(), paginate_links() или previous_posts_link()), их лучше убрать или закомментировать, чтобы не отображались элементы навигации.

Удаление пагинации в шаблонах темы

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

Пример кода пагинации, который часто встречается в теме:

if ( function_exists( 'the_posts_pagination' ) ) {
    the_posts_pagination( array(
        'mid_size' => 2,
        'prev_text' => __( 'Назад', 'wppagenavi' ),
        'next_text' => __( 'Вперед', 'wppagenavi' ),
    ) );
}

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

Пример удаления пагинации в шаблоне

В файле archive.php замените код с пагинацией на простой вывод записей без навигации:

<?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <h2><?php the_title(); ?></h2>
        <div><?php the_excerpt(); ?></div>
    <?php endwhile; ?>
<?php else : ?>
    <p>Записей не найдено.</p>
<?php endif; ?>
<

Альтернативный способ: редирект с пагинированных страниц на первую

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

function wppagenavi_redirect_pagination_to_first() {
    if ( is_paged() ) {
        wp_redirect( home_url( '/' ), 301 );
        exit;
    }
}
add_action( 'template_redirect', 'wppagenavi_redirect_pagination_to_first' );

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

Вывод без пагинации и влияние на SEO

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

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

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

  • Удаление пагинации в WordPress без плагинов возможно через изменение параметров основного запроса;
  • Обязательно убирайте вызов функций пагинации в шаблонах;
  • Будьте осторожны с производительностью при выводе большого количества записей;
  • Рассмотрите редиректы с пагинированных страниц для предотвращения доступа к ним;
  • Не забывайте про SEO-аспекты при изменении структуры сайта.

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как успешно оптимизировать WordPress для ручной пагинации
28.11.2025
Как сделать пагинацию для комплексных запросов с meta-записями и таксономиями в WordPress
05.03.2026
Как установить и настроить WP-PageNavi для пагинации в WordPress
22.02.2026
Как использовать хуки пагинации в WordPress: практические примеры и советы
12.11.2025
Как сделать пагинацию для многоязычных сайтов WordPress
18.02.2026
×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙