Как исключить записи конкретных рубрик из общего списка статей в WordPress

Доброго времени суток!

По умолчанию, на главной странице сайта, который использует движок WordPress, выводится список статей (записей). Причём неважно, к какой рубрике (категории) относится та или иная запись – они выводятся общим скопом и сортируются по дате добавления.

И если на вашем сайте имеется рубрика или несколько рубрик, записи с которых не должны отображаться в общем списке, что выводятся на главной странице, то это можно легко реализовать. В этом вам поможет данная инструкция.

Да, сами записи и рубрики никуда не деваются. Если посетитель зайдёт в рубрику, то он увидит все её записи. Просто записи скрываются из общего списка с главной страницы (и её подстраниц, если имеется навигация).

Для скрытия записей определённой рубрики (или рубрик) из общего списка материалов, что выводятся на главной странице, вам необходимо в файле functions.php, что располагается в директории используемой вами темы WordPress, вписать следующий код:

function ex_cat($query) {
  if ( $query->is_home ) {
       $query->set('category__not_in', array(33, 65, 77));
  }
  return $query;
}
add_filter('pre_get_posts', 'ex_cat');

В приведённом примере скрываются записи из трёх рубрик. Однако, как вы можете видеть, тут нет каких-либо имён категорий, только присвоенные им цифры (ID): 33, 65, 77. В вашем случае цифры и их количество будет иным.

Дабы узнать номер (ID), который был присвоен рубрике, которую вам необходимо скрыть, следует сделать следующее:

  1. Открыть консоль WordPress, и там зайти в «Рубрики».

    «Рубрики» в консоли WordPress

  2. Навести мышку на рубрику, и во всплывающей подсказке-ссылке подчеркнуть присвоенный ей номер.

    Узнаём присвоенный ID конкретной рубрике

В приведённом примере рубрика «Решаем проблему» идёт под цифрой 11 – её и надо вписывать в приведённый выше код.

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

Надеюсь, что приведённая инструкция была полезна и не вызвала затруднений при реализации.

Если на сайте используется RSS лента и наличествует желание и оттуда скрыть записи определённых рубрик, то данная возможность реализуется схожим образом, подробнее в материале «Как исключить статьи рубрики из RSS в WordPress».

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