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

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

Для удаления рубрики с главной страницы 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-ленты.

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.




Комментарии (0)     Подпишитесь на RSS комментариев к этой статье.

Leave a Comment

Fields with * are required.

Картинка с кодом валидации
Пожалуйста введите символы с картинки. Регистр букв неважен.