wp-kurs.ru wordpress WP-Kurs

Изменение количества постов на странице архива WordPress: практические методы и примеры

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

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

По умолчанию WordPress выводит количество постов, заданное в настройках «Чтение» — «Количество записей на странице». Но для различных архивов и типов записей часто требуется задать индивидуальные значения. В этой статье мы рассмотрим несколько способов решения этой задачи: от использования кода в functions.php до применения плагинов.

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

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

Рассмотрим пример функции, которая меняет количество постов только для страниц категории и тегов:

function wp_kurs_change_posts_per_page( $query ) {
    if ( ! is_admin() && $query->is_main_query() ) {
        if ( $query->is_category() || $query->is_tag() ) {
            $query->set( 'posts_per_page', 12 ); // выводим по 12 постов
        }
    }
}
add_action( 'pre_get_posts', 'wp_kurs_change_posts_per_page' );

В этом коде мы проверяем, что запрос — главный и не в админке, и если это архив категории или тега, меняем параметр posts_per_page. Вместо 12 вы можете указать любое число.

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

function wp_kurs_change_posts_per_page( $query ) {
    if ( ! is_admin() && $query->is_main_query() ) {
        if ( $query->is_category() ) {
            $query->set( 'posts_per_page', 10 );
        } elseif ( $query->is_tag() ) {
            $query->set( 'posts_per_page', 20 );
        }
    }
}
add_action( 'pre_get_posts', 'wp_kurs_change_posts_per_page' );

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

Если на сайте используются кастомные типы записей (custom post types), часто нужно задавать количество постов на их архивах отдельно.

Например, если у вас есть тип записи portfolio, можно добавить условие:

function wp_kurs_change_posts_per_page( $query ) {
    if ( ! is_admin() && $query->is_main_query() ) {
        if ( is_post_type_archive( 'portfolio' ) ) {
            $query->set( 'posts_per_page', 8 );
        }
    }
}
add_action( 'pre_get_posts', 'wp_kurs_change_posts_per_page' );

Так вы сможете легко управлять выводом контента на страницах с портфолио.

Важно помнить, что иногда используется параметр paged для пагинации, его трогать не нужно, иначе пагинация работать не будет.

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

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

  • ABC Pagination — плагин для кастомизации пагинации. Позволяет настроить количество постов на странице и стиль пагинации без кода. Подробнее на официальной странице плагина.
  • WP Query Control — удобный плагин для настройки различных параметров запросов WordPress, включая количество постов.
  • Advanced Custom Fields в связке с кодом — комбинируйте пользовательские поля и функции для гибкого управления выводом.

Использование плагинов особенно удобно, если у вас нет доступа к файлам темы или вы не хотите рисковать с кодом.

Практические советы по работе с количеством постов в WordPress

1. Оптимизируйте скорость загрузки страниц

Много постов на одной странице может замедлять загрузку, особенно если в них много картинок. Рекомендуется использовать ленивую загрузку изображений (lazy load) и кеширование. Для lazy load можно использовать плагин Clearfy Pro, который также помогает с оптимизацией.

2. Тестируйте разные значения

Число постов на странице — это баланс между удобством пользователя и производительностью. Попробуйте 6, 10, 12, 15 и посмотрите, как меняется скорость загрузки и поведение пользователей.

3. Используйте пагинацию или бесконечный скролл

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

Выводы и рекомендации

Для изменения количества постов на страницах архива WordPress лучше всего использовать хук pre_get_posts. Это позволяет гибко настраивать вывод для разных типов архивов и таксономий. Если нужна простота — воспользуйтесь плагинами, такими как ABC Pagination или WP Query Control. Не забывайте про оптимизацию скорости и удобство пользователей, тестируйте настройки и выбирайте оптимальный вариант.

×
Делай сайт лучше!!

-20% на премиум темы и плагины

Использовать скидку ⋙