После публикации, новая запись появляется на главной странице в списке постов в блоге. При этом на главной выводятся записи из всех рубрик, что может быть нежелательно для некоторых блогов. Так, например, недавно, в процессе работы над одним сайтом, у меня возникла необходимость скрыть записи из некоторых рубрик с главной страницы. И я решила об этом написать.
Для удаления рубрики с главной страницы wordpress существует большое количество плагинов. Один из них – это Frongpage Category Filter.
Но, чтобы не перегружать блог плагинами, я советую скрывать рубрики без использования плагина, с помощью небольшой функции. Давайте рассмотрим эту функцию подробнее:
1
2
3
4
5
6
7
8
|
// фильтр скрытых рубрик
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 ленте, а не только с главной страницы, в код надо будет внести небольшие изменения:
1
2
3
4
5
6
|
// фильтр скрытых рубрик
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-ленты.
Как видите, в том, чтобы удалить с главной некоторые рубрики, нет ничего сложного. Но если у вас остались какие-то вопросы, пишите в комментарии, будем разбираться 🙂