Как исключить записи и категории с главной страницы блога WordPress, rss ленты, результатов поиска, архивов и категорий!

Как исключить записи (отдельные посты), категории, ссылки, метки с главной страницы вашего блога или сайта, как исключить их из фида и результатов поиска по блогу, из архивов и категорий. Сделать это можно будет как по отдельности, так и сразу вместе, в комплексе и, главное, без плагинов и дополнительных модулей.

Итак, давайте предположим, что вы написали какой-то пост и не хотите, что бы он отображался на главной странице блога. Значит, делаем мы следующее:

Открываем файл functions.php. Вверху документа, сразу после открывающего тега <?php вставляем наш код, который и будет выполнять функцию фильтра отдельных статей или даже целых рубрик. Вставить код можно и в самом конце документа, перед закрывающим тегом php блока ?>

А теперь каждый код рассмотрим по порядку (как исключить записи).

 

Код исключения записей (постов) с главной страницы сайта по ID

function exclude_post($query) {
if ($query->is_home)
{$query->set(‘post__not_in’, array(1146, 1199) );} // id записи (поста)
return $query; }
add_filter(‘pre_get_posts’,’exclude_post’);

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

 

Код исключения записей (постов) из rss фида WordPress блога по ID

function exclude_post($query) {
if ($query->is_feed)
{$query->set(‘post__not_in’, array(1146, 1199) );} // id записи (поста)
return $query; }
add_filter(‘pre_get_posts’,’exclude_post’);

А вот уже с помощью этого варианта кода я покажу вам как исключить записи из rss фида вашего блога.

 

Как не выводить записи на страницах архива или категории по ID

function exclude_post($query) {
if ($query->is_archive)
{$query->set(‘post__not_in’, array(1146, 1199) );} // id записи (поста)
return $query; }
add_filter(‘pre_get_posts’,’exclude_post’);

Для удаления постов из категорий, необходимо лишь поменять is_archive на is_category

 

Как исключить записи (посты) из результатов поиска по блогу по ID

function exclude_post($query) {
if ($query->is_search)
{$query->set(‘post__not_in’, array(1146, 1199) );} // id записи (поста)
return $query; }
add_filter(‘pre_get_posts’,’exclude_post’);

Как исключить пост с главной, rss фида и результатов поиска сразу по ID

function exclude_post($query) {
if ($query->is_feed || ($query->is_home || ($query->is_search)))
{$query->set(‘post__not_in’, array(1146, 1199) );} // id записи (поста)
return $query; }
add_filter(‘pre_get_posts’,’exclude_post’);

Исключаем любой пост, id которого подставите, исключает с главной страницы вашего блога (ленты анонсов статей), rss ленты (фида) и результатов поиска по блогу!

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

function exclude_post($query) {
if ($query->is_feed || ($query->is_home))
{$query->set(‘post__not_in’, array(1146, 1199) );} // id записи (поста)
return $query; }
add_filter(‘pre_get_posts’,’exclude_post’);

Вам по желанию, нужно будет только менять следующие переменные во второй строке, те что в скобках — is_feed is_home is_search is_archive is_category

Вся эта информация относиться к исключению какого-либо конкретного поста по его ID.

 

Варианты исключения категорий с главной, фида и поиска по ID

Точно таким же образом мы можем исключать (убирать) с главной страницы, из фида и поиска, целые категории (рубрики), то есть, все посты которые относятся к какой-то определенной категории, по их ID.

Как исключить категорию с главной сраницы Блога WordPress
function exclude_cat($query) {
if ($query->is_home)
{$query->set(‘cat’,’-3, -5, -7′);} // id категории
return $query; }
add_filter(‘pre_get_posts’,’exclude_cat’);
Как исключить категорию из rss ленты (фида) Блога WordPress
function exclude_cat($query) {
if ($query->is_feed)
{$query->set(‘cat’,’-3, -5, -7′);} // id категории
return $query; }
add_filter(‘pre_get_posts’,’exclude_cat’);
Как не показывать категорию в архивах статей блога
function exclude_cat($query) {
if ($query->is_archive)
{$query->set(‘cat’,’-3, -5, -7′);} // id категории
return $query; }
add_filter(‘pre_get_posts’,’exclude_cat’);
Как исключить категорию из результатов поиска по Блогу WordPress
function exclude_cat($query) {
if ($query->is_search)
{$query->set(‘cat’,’-3, -5, -7′);} // id категории
return $query; }
add_filter(‘pre_get_posts’,’exclude_cat’);
Как исключить категорию из rss ленты, главной страницы и результатов поиска
function exclude_cat($query) {
if ($query->is_feed || ($query->is_home || ($query->is_search)))
{$query->set(‘cat’,’-3, -5, -7′);} // id категории
return $query; }
add_filter(‘pre_get_posts’,’exclude_cat’);
Как исключить категорию с главной и фида Блога WordPress
function exclude_cat($query) {
if ($query->is_feed || ($query->is_home))
{$query->set(‘cat’,’-3, -5, -7′);} // id категории
return $query; }
add_filter(‘pre_get_posts’,’exclude_cat’);

Чаще всего, скрывают отдельную категорию для того что бы писать в нее рекламные посты и отделить их от общей массы контента!

Если вам нужно убрать к примеру несколько тысяч статей с главной или еще откуда-нибудь, проще исключить их категории. Если это выборочные посты, тогда придется попотеть, либо воспользоваться специальным плагином. Хотя это будет не на много удобнее, все равно понадобиться проходить по каждой статье и нажимать чекбокс.

Если вы будете их скрывать вручную, вам необходимо лишь перейти на вкладку «Все записи» в консоли блога и поочередно наводить на них курсором, смотреть id и вставлять их в код. Несколько тысяч айдишников, конечно, заметно увеличат код, но даже такой он будет гораздо проще, чем код всего плагина, который к тому же еще и использует Базу данных.

 

Как исключить записи (удалить) с определенным тегом с главной, фида (rss ленты) и результатов поиска по его ID

Для этого мы будем использовать следующий код:

function exclude_post($query) {
if ($query->is_home) {
$tags = array(‘3’, ‘7’, ’13’); // id тегов
$query->set(‘tag_not_in’, $tags);}
return $query;}
add_filter(‘pre_get_posts’,’exclude_post’);

Такой образец исключит статью отовсюду сразу:

function exclude_post($query) {
if ($query->is_feed || ($query->is_home || ($query->is_search)))
{$tags = array(‘3’, ‘7’, ’13’); // id тегов
$query->set(‘tag_not_in’, $tags);}
return $query;}
add_filter(‘pre_get_posts’,’exclude_post’);

Для того что бы исключать только из фида или только из результатов поиска, в первый вариант кода, во второй строке, подставляйте уже знакомые вам значения is_feed is_home is_search is_archive is_category

Еще один полезный момент! Вы можете добавить несколько различных вариантов кода в файл functions.php и закомментировать те, которыми пользоваться не собираетесь.

 

При помощи плагина

Simply Exclude — с помощью этого плагина вы сможете отключать записи, категории, метки, ссылки, у него очень удобная интеграция! Вот, посмотрите сами:

Настройки там практически ни какой не требуется, вы можете найти плагин Simply Exclude через поиск плагинов в консоли блога, установить и активировать. Все, можно пользоваться, напротив списка статей, рубрик, меток и т.д. вы обнаружите удобные чекбоксы!

Статью взял и подкорректировал отсюда.

На обратный вопрос, «как вывести контент только на определенной странице?», рассказано здесь.

Комментарии отсутствуют

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

58  −  52  =