Скрыть запись определенных рубрик с основной страницы

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

Как же скрыть запись определенных рубрик?

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




Для удаления рубрики с главной страницы wordpress существует большое количество плагинов. Один из них — это Frongpage Category Filter.

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

// фильтр скрытых рубрик
function hidecategory($query) {
if ( $query->is_home ) {
$query->set('cat','-1,-7');
}
return $query;
}
add_filter('pre_get_posts', 'hidecategory');

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

В четвертой строке мы должны указать ID категорий, которые требуется скрыть. Указывать их требуется со знаком «минус» или «дефис», при этом перечисление происходит через запятую

Так же обратим внимание, что код скрывает рубрику только с главной страницей сайта, но в RSS-ленте рубрики останутся. Поэтому, если вы добавили свой сайт в каталоги RSS-лент, то записи из нежелательной рубрики попадут в каталоги. Поэтому, если вы хотите также скрыть рубрики в RSS ленте, а не только с главной страницы, в код надо будет внести некоторые изменения:
// фильтр скрытых рубрик
function hidecategory($query) {
if ($query->is_feed || ($query->is_home && !(is_paged())))
{$query->set('cat','-1,-7');}
return $query; }
add_filter('pre_get_posts','hidecategory');

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




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

Определить ID рубрики можно зайдя в нее через админку сайта и в адресной строке появиться вот такая запись «tag_ID=4».