Как скрыть категории WordPress с главной и RSS страниц сайта

Click here to view original web page at wordpressinside.ru
Убираем категорию с главной

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

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

Вспоминаются три конкретные ситуации, с которыми я сталкивался и когда данная фишка пригодилась:

  • Допустим, вы ведете персональный профессиональный блог, где иногда кроме технических публикаций желаете добавлять заметки личного плана: делиться какими-то наблюдениями и размышлениями, публиковать обзоры своих путешествий и т.п. Иногда подобную «личную» информацию есть смысл убирать с лицевой страницы сайта.
  • Аналогично предыдущему варианту выделяем в отдельную рубрику разные статьи «для поисковиков», заточенные под определенные ключевики и привлекающие трафик без ущерба основной тематике проекта. Например, можете разбавить свой ресурс о программировании общими мануалами по работе с компьютером.
  • Третий случай больше знаком вебмастерам. Ранее в другом блоге я публиковал пост о заработке на биржах ссылок и Вордпресс сайтах, где среди прочего советовал в WordPress убирать рубрику с текстами, продающими ссылки, из RSS и главной. Так вы минимизируете вред от рекламных материалов для постоянных читателей.

Плагины скрытия категорий

В первой версии статьи я рассматривал лишь модуль Exclude categories, т.к. варианты из официального репозитория вызывали определенные сомнения, сегодня дополню его еще одним.

Ultimate Category Excluder

Плагин Ultimate Category Excluder
Плагин Ultimate Category Excluder обладает универсальными функциями и работает с разными типами страницам:
  • главной;
  • RSS фидами;
  • архивами;
  • поиском.

Если вы исключаете записи из поиска с помощью Search Exclude и по совместительству хотите решить вопрос и с другими разделами — самое время обратить внимание на текущий модуль.

Не смотря на то, что Ultimate Category Excluder не обновлялся около 8ми месяцев, выглядит он вполне рабочим (40тысяч скачиваний, оценка — 4,5). После активации переходите в его настройки и в соответствующей таблице ставите галочки напротив исключаемых рубрик и типов страниц.

Настройка Ultimate Category Excluder
Exclude Categories

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

Скачать Exclude Categories можете в статье по ссылке выше либо здесь. Установка достаточно простая и обычная — распаковать архив, залить на FTP, активировать в адмике. Затем в разделе «Настройки» появится соответствующий одноименный пункт меню. Переходим в него и видим:

Настройка модуля Exclude categories

Тут, конечно, опции не такие гибкие как в предыдущем варианте — вы можете выбрать группу значений, а затем для них определить где они не будут показаны. То есть нельзя одну отдельную рубрику скрыть из главной, а другую — из RSS. Также из недостатков я бы назвал отсутствие обновлений с 2011 года, хотя на некоторых моих сайтах все до сих пор стабильно работает.

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

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

function my_exclude_category( $query ) {
	if ( $query->is_home ) {
		$query->set( 'cat', '-2' );
	}
	return $query;
}
 
add_filter( 'pre_get_posts', 'my_exclude_category' );

Здесь основным и единственным задаваемым параметром является ID скрываемой категории «cat», где указано значение -2. Да, вы правильно заметили — перед ID ставится знак минус. Смотрите соответствующий номер рубрики в адресной строке браузера, перейдя к ее редактированию (или при наведении):

Как узнать ID категории
Если вам надо убрать несколько элементов, просто перечислите их через запятую: ( ‘cat’, ‘-2, -4, -5’ );

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

В принципе, на этом все. Есть что добавить? — пишем ниже.

P.S. Если вы начинающий пользователь интернета и платежные системы для вас совершенно неизвестное понятие, советую глянуть проект Справочная служба WebMoney — информация и консультации по Вебмани.