Исключаем вывод записей из определенной рубрики на Главной, из результатов поиска и из RSS-ленты

19.11.2015

Рассмотрим самый простой вариант исключения рубрики с id=17 из вывода на Главной странице без использования query_posts. Для этого в файл functions.php добавим фильтр:

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

Теперь на Главной странице будут выводиться все последние записи, кроме записей из определенной рубрики, в данном случае, кроме записей из рубрики с ID=17.

Если нужно чтобы только на первой странице не отображались записи из рубрики 17, а на 2-ой, 3-ей и остальных страницах записи из рубрики 17 отображались, тогда нужно использовать такой код:

function removeFromHome($query) {
if ($query->is_home && !(is_paged())) 
	{$query->set('cat','-17');}
return $query; }
add_filter('pre_get_posts','removeFromHome');

В таком случае на Главной странице на 1 странице будут выводиться все записи кроме записей из Рубрики 17, а на остальных страницах /page/2, /page/3 и дальше будут выводиться уже все записи, в том числе и из рубрики 17.

Если необходимо исключить записи из рубрики 17 со страницы результатов поиска, то используем такой код:

function removeFromFeed($query) {
if ($query->is_search)
	{$query->set('cat','-17');}
return $query; }
add_filter('pre_get_posts','removeFromFeed');

Если необходимо исключить записи из рубрики 17 из RSS ленты, то используем такой код:

function removeFromFeed($query) {
if ($query->is_feed)
	{$query->set('cat','-17');}
return $query; }
add_filter('pre_get_posts','removeFromFeed');

Можно комбинировать комбинации исключений. Например, исключаем записи из рубрики с ID=17 и ID=18 из RSS-ленты и Главной страницы, при чем только с первых страниц:

function removeCat($query) {
if ($query->is_feed || ($query->is_home && !(is_paged()))) 
	{$query->set('cat','-17,-18');}
return $query; }
add_filter('pre_get_posts','removeCat');

Не уходи, пока не прочитаешь:

Один комментарий к “Исключаем вывод записей из определенной рубрики на Главной, из результатов поиска и из RSS-ленты”

Оставить комментарий