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

Рассмотрим самый простой вариант исключения рубрики с 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');
Выводим в записях карту Google используя только адрес без координат

Во время создания одного проекта связанного с арендой недвижимости возникла маленькая задачка с подключением Google…

Как сделать пагинацию для элементов custom post type на странице page

Вывод всех записей custom post type review без пагинации: Вывод записей custom post type review…

Что делать с письмом от Google «Googlebot не может получить доступ к файлам CSS и JS на сайте»

28 июля 2015 года на почту начали приходить сообщения от Google Search Console Team <sc-noreply@google.com> …

Как защитить сайт на CMS WordPress от взлома

WordPress — это удобная блог-платформа для публикации статей и управления ими, на которой базируется огромное…

1 комментарий

Весело)) Нашел ответ на свой вопрос на своем сайте через Google. Спасибо, Денис!

Ответить