Як вивести потрібну кількість постів на одній сторінці рубрики (категорії)
Привіт:) Покажу один зручний хак, який дозволяє гнучко керувати кількістю постів, що виводяться на сторінках рубрик (категорій) у WordPress — як глобально, так й індивідуально для кожної з них.
За замовчуванням у WordPress кількість постів на сторінках архівів задається в адмін-розділі Налаштування -> Читання -> Відображати не більше X записів. Але це налаштування впливає одразу на всі архіви: записи, категорії, теги тощо.

Як змінити кількість постів у рубриках через functions.php
Ви можете змінити кількість постів окремо для рубрик за допомогою хука pre_get_posts.
Весь код нижче слід вставляти файл functions.php.
🔧 Приклад: однакове значення для всіх категорій
add_action( 'pre_get_posts', function( $query ) {
if ( ! is_admin() && $query->is_main_query() && is_category() ) {
$query->set('posts_per_page', 5);
}
}, 9999 );
Замість
5підставте потрібне вам число.
🎯 Для конкретної рубрики за ID або слагом
add_action( 'pre_get_posts', function( $query ) {
if ( ! is_admin() && $query->is_main_query() && is_category( 'rubrika-1' ) ) {
$query->set( 'posts_per_page', 3 );
}
}, 9999 );
Працює і з ID:
is_category( 15 );
А також з кількома рубриками:
is_category( [ 'rubrika-1', 'rubrika-2' ] );
🔁 Для кількох рубрик — різна кількість постів
add_action( 'pre_get_posts', function( $query ) {
if ( ! is_admin() && $query->is_main_query() ) {
if ( $query->is_category( 'novyny' ) ) {
$query->set( 'posts_per_page', 2 );
}
if ( $query->is_category( 'blog' ) ) {
$query->set( 'posts_per_page', 6 );
}
if ( $query->is_category( [ 'aktsii', 'znyzhky' ] ) ) {
$query->set( 'posts_per_page', 4 );
}
}
}, 9999 );
🧪 Поради та зауваження
- Використовуйте
9999як пріоритет, щоб ваш код виконався після можливих плагінів. - Не змінюйте параметр для бекенду: перевірка
! is_admin()обов’язкова. - Переконайтесь, що працюєте з основним запитом:
is_main_query(). - Ви можете комбінувати перевірки на
is_tag(),is_post_type_archive()та інші архіви.
