Май
14
5

Разное количество записей на странице без плагинов

Разное количество записей на страницеЗадавать число записей блога, которые выводятся на его страницах, вы можете в админке wordpress в разделе «Параметры» — «Чтение». К сожалению, сделать это можно одновременно для всех страниц без исключения — главная, архивы, категории и т.п. Я уже рассказывал о плагине Different Posts Per Page который, в принципе, помогает решить проблему. Но каково же было мое удивление, когда новая его версия стала более «урезанной» и не способной охватить все типы задач.

Новый Different Posts Per Page вместо отдельного раздела теперь добавляет все настройки в «Параметры» — «Чтение». Здесь имеются разные типы страниц с возможностью выбора количества постов и сортировкой по тем или иным параметрам (дате, автору, заголовку, случайным образом и т.п.).

плагин Different Posts Per Page

Сортировка, кстати, достаточно интересная штука и поможет решить специфические задачи, но как выбрать разное число записей для разных категорий. Раньше в модуле это было! Например, есть на сайте новости, где заметки занимают мало места, без картинок и анонсы достаточно краткие, а есть статьи с иллюстрациями, которые выводятся на главной каким-то ярким способом.

Теоретически вы можете использовать WP_Query в цикле (loop) или сделать под разные категории свой шаблон. Напомню один из wordpress хаков — для категории блога можно создать файл шаблона по типу category-2.php или category-3.php, где цифры = ID категории.

Но есть куда более интересный и красивый метод! Если я правильно понял, там используется хук pre_get_posts который меняет запрос в момент формирования постов, и это как-то более адекватно нежели создавать второй query_posts(). Итак, вы должны зайти в файл functions.php где добавляете следующую конструкцию:

function custom_posts_per_page($query){
    if(is_home()){
    $query->set('posts_per_page',8);
    }
    if(is_search()){
        $query->set('posts_per_page',-1);
    }
    if(is_archive()){
        $query->set('posts_per_page',25);
}//endif
}//function
 
//this adds the function above to the 'pre_get_posts' action     
    add_action('pre_get_posts','custom_posts_per_page');

Здесь используются условные операторы — is_home (для главной), is_search (страницы поиска), архивов (is_archive), а также параметр posts_per_page отвечающий за выводимое количество записей. Значение «-1» означает, что нужно отобразить абсолютно все посты на той или иной странице (может, в принципе, пригодиться). Я тестировал этот вариант на 2-3 сайтах, везде все отлично работало, проблем с навигацией также не возникло. Сам метод максимально прост и нагляден. Если будут какие-то замечания — пишите в комментариях.

Update 29.07.03. Если вы хотите в приведенном выше коде использовать разное число записей для страниц архива, добавив в условие is_paged, не забывайте про смещение $offset. Там может возникнуть глюк когда часть записей не будет отображаться на второй странице (если выводите на подстраницах больше постов чем на главной.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 6, средний балл: 4,83 из 7)
Загрузка...

категория Категории: Возможности; Хаки и секреты;
теги Теги: , , , , .

комментариев 5 к статье “Разное количество записей на странице без плагинов”

  • Sun Sunich   15.05.2013

    Спасибо, поставил на свой блог, полезная штука! :)

  • Роман   09.06.2013

    Сработало Ура
    Спасибо

  • Таня   26.02.2014

    Интересные и полезные советы спасибо!

  • Тарас   09.04.2014

    Как быть с is_paged, ??? мне надо чтоб на первой странице было 31пост, а на остальных по 6

  • Tod   10.04.2014

    Тарас, а что там с is_paged? Немного не понял вопрос. С плагином cbnet Different Posts Per Page решить задачу не получается? Если через приведенный в посте код, то для is_home добавляете дополнительное условие с is_paged, где указываете нужное число страниц. О, кстати, я бы еще попробовал там использовать is_front_page, что отвечает именно главной странице без архива.

Оставить комментарий


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

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

Последние посты
Полезные заметки
Лучшее в категории
Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости