Home News

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

01.09.2018

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

Работа с записями

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



 

Для чего это обычно делается? Все просто! Чтобы определенный контент на вашем блоге не был виден вашим подписчикам и не маячил на главной странице. Это могут быть посты под трафик из поисковых систем, продажные статьи с ссылками из ГГЛ и так далее. У каждого свои цели, но решение одно.


Обзор плагина #6: Duplicate Post. Копируем записи и страницы в WordPress

Заходим в административную панель. Далее идем в Записи-Рубрики и смотрим там ID той рубрики, которую нам нужно скрыть. Наводите мышкой на название рубрики и внизу смотрим URL. Выглядит все это следующим образом. Картинка кликабельна.

В моем случае ID необходимой рубрики — 20. Теперь заходим в Внешний вид — Редактор — functions.php и добавляем там следующий код.

function exclude_category ( $query ) { if ( $query -> is_feed || ( $query -> is_home || ( $query -> is_search ) ) ) { $query -> set ( 'cat' , '-20' ) ; } return $query ; } add_filter ( 'pre_get_posts' , 'exclude_category' ) ;

function exclude_category($query) { 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, то код следующий.

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

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

Для исключение записей только из архивов блога код такой.

function exclude_category ( $query ) { if ( $query -> is_archive ) { $query -> set ( 'cat' , '-20' ) ; } return $query ; } add_filter ( 'pre_get_posts' , 'exclude_category' ) ;

function exclude_category($query) { if ($query->is_archive){ $query->set('cat','-20');} return $query; } add_filter('pre_get_posts','exclude_category');

Все так просто и быстро и без всяких там плагинов. Пользуйтесь на здоровье.

rss