Как исключить записи (отдельные посты), категории, ссылки, метки с главной страницы вашего блога или сайта, как исключить их из фида и результатов поиска по блогу, из архивов и категорий. Сделать это можно будет как по отдельности, так и сразу вместе, в комплексе и, главное, без плагинов и дополнительных модулей.
Итак, давайте предположим, что вы написали какой-то пост и не хотите, что бы он отображался на главной странице блога. Значит, делаем мы следующее:
Открываем файл 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
if ($query->is_feed)
{$query->set(‘post__not_in’, array(1146, 1199) );} // id записи (поста)
return $query; }
add_filter(‘pre_get_posts’,’exclude_post’);
А вот уже с помощью этого варианта кода я покажу вам как исключить записи из rss фида вашего блога.
Как не выводить записи на страницах архива или категории по ID
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
if ($query->is_search)
{$query->set(‘post__not_in’, array(1146, 1199) );} // id записи (поста)
return $query; }
add_filter(‘pre_get_posts’,’exclude_post’);
Как исключить пост с главной, rss фида и результатов поиска сразу по ID
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 ленты (фида) и результатов поиска по блогу!
Самый первый код убирал пост только из одного места, а именно — с главной страницы (ленты анонсов статей). Если вам нужен код, который будет исключать ваш пост только из каких-либо двух мест блога, то он будет выглядеть следующим образом:
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
Для этого мы будем использовать следующий код:
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’);
Такой образец исключит статью отовсюду сразу:
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 через поиск плагинов в консоли блога, установить и активировать. Все, можно пользоваться, напротив списка статей, рубрик, меток и т.д. вы обнаружите удобные чекбоксы!
Статью взял и подкорректировал отсюда.
На обратный вопрос, «как вывести контент только на определенной странице?», рассказано здесь.
Комментарии отсутствуют