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

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

Добрый день, дорогие читатели нашего блога. Сегодня хочу рассказать вам, как просто в WordPress можно изменить количество выводимых постов в указанной категории или метке, или поиске. При этом, постраничная разбивка страниц типа "wp-pagenavi" или "WP Page Numbers" будет работать без проблем. Забегая наперед хочу сказать, что изменений самого цикла query_posts и значений $query_string в явном виде мы делать не будем, то есть нам не нужно искать место перед циклом чтоб изменить этот злополучный код. Да и вообще, менять что нибудь в цикле через query_posts это очень плохая затея. Это не есть гуд. Далее покажу вам, как легко и просто можно поменять количество выводимых постов.

Все намного проще, открываем файл functions.php вашей темы и в самом начале пишем вот такой простой код:

<?php
function get_posts_4_st( $query ) {
    if ( !is_admin() && $query->is_main_query() && is_category(6) ) {
        $query->set( 'posts_per_page', 4 );
    }
}
add_action( 'pre_get_posts', 'get_posts_4_st' );
?>

Это хук или крючок, который подключается к Вордпресс. Попробую немного пояснить сам код. И так, этот код устанавливает вывод по 4 поста для 6 категории.

if ( !is_admin() && $query->is_main_query() && is_category(6) ) {  - is_category(6)  - это категория с ИД шником 6. Если нужно изменить для нескольких категорий, например 6, 8 и 10 то надо было писать вот так:

if ( !is_admin() && $query->is_main_query() && is_category(array(6,8,10)) ) {

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

if ( !is_admin() && $query->is_main_query() && is_category() ) {

 

Второй не известный кусок кода, это вот здесь:

$query->set( 'posts_per_page', 4 ); - устанавливаем количество выводимых постов, я указал 4, но никто не мешает изменить это значение.

 

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

Вот так например, можно исключить один иkи несколько постов по ид из цикла:

$query->set('post__not_in',array(22,26));

 

На этом все, теперь вы будете знать как изменить вывод количества постов одной категории в WordPress с помощью хука.

Комментарии к записи «Как изменить количество выводимых постов у отдельной категории WordPress и работала постраничная навигация»:
  1. Павел:

    ОГРОМНОЕ спасибо! Сидел-сидел, мучился-мучился, а тут Вы все решили.

  2. Руслан:

    Спасибо. Как раз искал такое решение. Все заработало как надо.

  3. Алексей:

    Огромное спасибо чувак! Реально помог, чисто и конкретно. Респект тебе и развития твоему ресурсу по чёткому курсу.

Сделать заказ
Онлайн помощь по WordPress