Четкая статья о том, как можно исключить записи и рубрики из RSS ленты и главной страницы сайта в WordPress, а также из страниц поиска и архивов. В данной статье вы найдете простое решение, не требующее установки дополнительных плагинов. Простой код для вставки ручками, сможет каждый.
Для чего это обычно делается? Все просто! Чтобы определенный контент на вашем блоге не был виден вашим подписчикам и не маячил на главной странице. Это могут быть посты под трафик из поисковых систем, продажные статьи с ссылками из ГГЛ и так далее. У каждого свои цели, но решение одно.
Как исключить вывод записей на главной странице и трансляцию их в RSS
Заходим в административную панель. Далее идем в Записи-Рубрики и смотрим там ID той рубрики, которую нам нужно скрыть. Наводите мышкой на название рубрики и внизу смотрим URL. Выглядит все это следующим образом. Картинка кликабельна.
В моем случае ID необходимой рубрики — 20. Теперь заходим в Внешний вид — Редактор — functions.php и добавляем там следующий код.
if ($query->is_feed || ($query->is_home || ($query->is_search))){
$query->set(’cat’,’-20’);}
return $query; }
add_filter(’pre_get_posts’,’exclude_category’);
При этом помните, что вам нужно поменять в этом коде ID вашей рубрики. Вот такое вот простое решение. С помощью этого кода вы исключите транслирование записей из этой рубрики на главную страницу и RSS канал.
Если вы не хотите показывать посты на главной, но разрешить отправку их в RSS, то код следующий.
if ($query->is_home){
$query->set(’cat’,’-20’);}
return $query; }
add_filter(’pre_get_posts’,’exclude_category’);
Для исключение записей только из архивов блога код такой.
if ($query->is_archive){
$query->set(’cat’,’-20’);}
return $query; }
add_filter(’pre_get_posts’,’exclude_category’);
Все так просто и быстро и без всяких там плагинов. Пользуйтесь на здоровье.
Источник: