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

Бывают моменты, когда нужен нестандартный подход к ведению сайта. Разное количество записей на разных страницах как раз такой вариант. Здесь не получится обойтись выбором количества записей через Параметры — Чтение, так как изменятся все страницы сайта.

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

Выглядеть настройки будут примерно так:

Можно попробовать решить проблему через какие-нибудь хуки. Например мы хотим вывести только 5 последних постов:

<?php query_posts('showposts=5'); ?>
 
<ul>
  <?php while (have_posts()) : the_post(); ?>
  <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
  <?php endwhile;?>
</ul>

Или же хотим выводить все те же 5 постов, но из какой-то конкретной категории:

<?php query_posts('cat=2&showposts=5'); ?>
 
<ul>
  <?php while (have_posts()) : the_post(); ?>
  <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
  <?php endwhile;?>
</ul>

Однако! Для решения нашей задачи лучше всего подойдет хук pre_get_posts. Что нужно сделать для того, чтобы грамотно сформировать вывод нужного количества записей на нужных страницах. Первым делом заходим в наш functions.php. Туда вставьте следующую конструкцию:

function custom_posts_per_page($query){
if(is_home()){ $query->set('posts_per_page',9); }
if(is_search()){ $query->set('posts_per_page',10); }
if(is_archive()){ $query->set('posts_per_page',30); }
}
add_action('pre_get_posts','custom_posts_per_page');

Здесь «is_home()» означает Главную страницу сайта, а цифра «9» — количество записей на ней. is_search() — это результытй поиска, а is_archive() — архив записей.

Если вам нужно вывести все записи, тогда в поле значения добавляйте «-1».

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

  1. Александр 23.07.2019 в 13:30

    В плагине есть и возможность выставить разное количество постов на главной и остальных страницах. Вот в этом случае, Page Navi делает не правильную навигацию и криво работает. Сейчас попробую еще другие плагины для постраничной навигации. Руслан, недавно публиковал статью Разное количество записей на странице без плагинов там найдете один из вариантов (достаточно простых)

    1. Идеальный вариант в подобных ситуациях — не плагин, а небольшой участок кода. Все же, многие плагины подгружают свои файлы, чем увеличивают нагрузку. Всегда лучше, когда точно знаешь ЧТО и КУДА добавил.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *