После публикации, новая запись появляется на главной странице в списке постов в блоге. При этом на главной выводятся записи из всех рубрик, что может быть нежелательно для некоторых блогов. Так, например, недавно, в процессе работы над одним сайтом, у меня возникла необходимость скрыть записи из некоторых рубрик с главной страницы. И я решила об этом написать.
Для удаления рубрики с главной страницы 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-ленты.
Как видите, в том, чтобы удалить с главной некоторые рубрики, нет ничего сложного. Но если у вас остались какие-то вопросы, пишите в комментарии, будем разбираться 🙂