Як вивести потрібну кількість постів на одній сторінці рубрики (категорії)

Привіт:) Покажу один хак, який дозволить вивести потрібну кількість постів на одній сторінці архіву всіх рубрик або якоїсь окремої.

У WordPress за замовчуванням в архіві всіх рубрик виводиться кількість постів, задана в адмін-розділі Налаштування > Читання, в опції Відображати не більше.

Ця опція одночасно застосовується для всіх рубрик. Але цю поведінку можна змінити.

Відкрийте файл functions.php та додайте 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 замініть на своє.

Якщо потрібно встановити кількість постів для конкретної рубрики, у рядку із функцією is_category() вкажіть її слаг або ID.

is_category( 9 );
is_category( 'rubrika-1' );

Якщо потрібно вказати декілька категорій, використовуйте варіанти коду

is_category( [ 9, 'rubrika-1', 'rubrika-2' ] );
is_category( [ 9, 55, 68 ] );

Ще один варіант:

add_action( 'pre_get_posts', function( $query ) {
    if ( !is_admin() && $query->is_main_query() ) {
        if ( $query->is_category( 'rubrika-1' ) ) {
            $query->set( 'posts_per_page', 2 );
        }
        if ( $query->is_category( 'rubrika-2' ) ) {
            $query->set( 'posts_per_page', 3 );
        }
    }
}, 9999 );

Тут для архіву рубрики зі слагом rubrika-1 на одній сторінці виводиться 2 записи, а для rubrika-2 – 3.

Михайло Петров
Михайло Петров

Мене звати Михайло. Я — WordPress-розробник. Створюю візитки, корпоративні сайти, блоги на WordPress.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *