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

Добрый день, друзья!

Если у вас восстала проблема, как отключить комментарии WordPress на вашем сайте, то вы попали по адресу.

После прочтения данного мануала вы сможете запретить своим посетителям оставлять комментарии ко всем записям, так и к каждой в отдельности. Кроме этого вы сможете убрать форму комментариев, которая совершенно не нужна, если обсуждение записей будет закрыто.

Я не знаю, зачем вам необходимо убирать комментарии, но если уж на то пошло, то инструкция в полном объеме перед вами снизу.

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

Если же у вас какой-то сайт-визитка, справочник или каталог, то на таком ресурсе комментарии совершенно не нужны, так как кроме спама вы ничего не будете получать.

Отключаем комментирование новых статей

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

Делается все очень просто через админ-панель WordPress. Сначала заходим в пункт "Настройки - обсуждение" и запрещаем оставлять комментарии к новым статьям.

Данный чек-бокс снимаем, чтобы галочки не стояло. Теперь в новых статьях не должно быть формы комментариев. Если же она будет, то при попытке оставить коммент, будет выдавать сообщение "Извините, обсуждение этой записи закрыто".

Если форма не исчезнет, то значит шаблон так устроен и в последнем пункте статьи я объясню, как ее удалить.

Отключение комментариев для всех существующих записей

Сначала я опишу вам все действия, а затем пронумерую их на скриншоте, чтобы было более понятно.

  1. Заходим в список всех записей через пункт "Записи - все записи";
  2. Выделяем все записи чек-боксом;
  3. Выбираем изменение всех записей;
  4. Запрещаем комментарии и обновляем настройки.

Скриншот кликабельный. Можете посмотреть его в полном размере.

Замечу, что на скришоте показан блок массового редактирования, где вы можете отключить комментирование. В изначальном же варианте, когда вы только перейдете в список всех записей, его не будет. Он появляется только после 3го действия, когда выбираем вариант изменения.

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


Кнопка находится в самом верху админ-панели с правой стороны. Количество записей ставите свое. Если нужно произвести отключение к 300м записям, то и ставите это значение.

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

Делается все аналогично, как и со статьями, только уже переходим в пункт "Страницы - все страницы".

Если понадобится вернуть комментирование обратно, то делается все аналогично, только выбираете пункт "Разрешить".

Рассмотрим, как отключать комментарии к определенным статьям.

Убираем комментарии в определенных записях и страницах

Существует вариант, когда нужно произвести отключение обсуждений только в некоторых записях. Например вы публикуете на блоге новость о предновогодней распродаже своих информационных курсов. Зачем комментарии к таким заметкам? В таких случаях комменты нужно убирать.

Сделать можно это:

  • через список всех записей;
  • через редактор записи.

Через список всех записей нужно зайти в свойства статьи и убрать чек-бокс с пункта "Разрешить комментарии".

Через редактор записей также можно делать и это более удобно, так как можно закрыть обсуждение сразу в процессе публикации. Но для этого проследите, чтобы в настройка экрана внутри редактора отображался пункт обсуждений.


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


То же касается и страниц.

Для закрепления небольшое видео по вышеописанной информации.

Остался последний и, пожалуй, самый сложный шаг.

Убираем форму комментариев с сайта

К сожалению, не во всех шаблонах при отключении обсуждений, форма комментирования исчезает. У меня она осталась. Если у вас также форма не исчезла и она вам совершенно не нужна, то сейчас я постараюсь подробно объяснить, как ее убрать с сайта.

Еще к одному сожалению без редактирования файлов шаблона не обойтись, так как форму выводит php код, который и нужно удалить из файла. Проблема в том, то в каждом шаблоне она выводится по разному. У кого-то она выводится в отдельном файле, а затем просто подгружается из php кода. А у кого-то прямо в файле вывода записей будет содержаться код формы.

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

Для начала я всегда рекомендую пойти в файлы страниц (page.php) и одиночной записи (single.php) и посмотреть на наличие в них кода, выводящего форму. Если такой имеется, то просто его удалить и проблема решена. В моем шаблоне данный код выводится полностью со всеми полями (ввод имени, e-mail, сайта и сообщения).

Вполне возможно, что у вас такая же структура построения шаблона. Тогда вы идете в эти файлы и ищете примерно такой код, как на скриншоте выше (кликабельный). Код будет всегда похож и в нем будет большое наличие слов "comment".

Если он имеется, то находите его начало и конец и удаляете к чертовой...

Если же нету, то вполне возможен вариант с выводом формы комментирования из друго файла с помощью функции. В стандартном шаблоне Twentyfourteen, это так и сделано.

Код формы находится где-то в другом файле (например, comments.php, comments-template.php). Но этот код все равно выводится в одиночную запись и страницы. В шаблоне Twentyfourteen это реализовано следующим образом.


В данном случае код также имеет наличие слов "Comment". Можно его удалить, но в этом нет нужды, так как данный код не выводит форму при отключенном обсуждении.

Может быть такая ситуация, что в файле одиночной записи (single.php) и страницы (page.php) вы не найдете никакого похожего кода, как в первом, так и во втором случае. Тогда форма выводится вместе с контентом. Это немного усложняет задачу, так как в некоторых шаблонах контент может выводиться очень сложными функциями. В этом случае я предлагаю пойти в файла comments.php, comments-template.php (или подобные им) и искать форму там.

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

Данный процесс имеет некоторые сложности для новичка. Особенно, если шаблон замороченный. В любом случае, комментарии на своем сайте я не отключал. Поэтому, при возникновении проблем, пишите свои вопросы.

На этом все, друзья. Пока.

С уважением, Константин Хмелев!

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

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

По моему пошаговому руководству любой из вас сможет реализовать эту функцию на своем блоге WordPress, без применения каких-либо плагинов, то бишь на скорость загрузки это ни как не повлияет.

Ну что ж, начнем! Нам нужен блог на движке WordPress, нам нужно немножко желания и умение копировать фрагмент текста из одного документа и вставлять его в другой документ. Все это у Вас есть! тогда поехали…

Данную задачу можно решить несколькими способами:

  • С помощью внесения не большого фрагмента кода в файл functions.php (поговорим о нем);
  • С помощью более сложного перепрограммирования кода шаблона (такие мануалы я не пишу, это не формат моего блога);
  • С помощью плагина «Simply Exclude» (о нем я расскажу в конце)

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


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

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


if ($query->is_home)
{$query->
return $query; }

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

Код исключения записей (постов) из 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 фида вашего блога. Для чего это нужно? Да очень просто, таким не замысловатым способом вы можете задерживать публикацию новой статьи в фиде, соответственно она не будет разослана сервисом feedburner подписчикам и не будет доступна к просмотру программами читалками, rss агрегаторами. Все это нужно лишь на тот случай, если вы беспокоитесь о воровстве вашего контента через rss.

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

Существуют и специальные плагины, которые способны задерживать на определенное время публикацию статьи в фиде! В любом случае использовать эту функцию или нет — решать вам. Мне как-то раз понадобилось написать небольшой пост для узкого круга людей, я исключил его с главной и из фида, затем и вовсе снял с публикации и удалил. В принципе была задача и я ее решил таким способом!

Копируете код, вставляете в самый верх файла functions.php, указываете id поста и готово!

Как не выводить записи на страницах архива или категории по 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");

Как это будет работать, например с поиском от Яндекса или Google поиском я не проверял. Позже я по работаю над этим и сделаю небольшой апдейт поста, либо напишу в комментах. Я знаю лишь что отлично будет работать со стандартной функцией поиска движка WordPress. У вас у всех виджет такой есть — «Поиск по Блогу»!

Как исключить пост с главной, 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. Но это далеко не все что можно исключить с главной страницы блога, из фида и из результатов поиска. Сейчас мы и продолжим в этом разбираться!

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

3. Следующий цикл вариантов кода (исключение категорий):

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

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

Как исключить категорию с главной сраницы Блога WordPress


if ($query->is_home)
{$query->
return $query; }

Как исключить категорию из 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 и вставлять их в код. Несколько тысяч айдишников конечно заметно увеличат код, но даже такой он будет гораздо проще чем код всего плагина, который к тому же еще и использует Базу данных.

4. Заключительная часть нашего практического руководства (исключение по тегу, исключение плагином):

Как исключить записи (удалить) с определенным тегом с главной, фида (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 и закомментировать те, которыми пользоваться не собираетесь.

Рассмотрим на примере:

Выделяем нужный фрагмент кода → жмем правую кнопку мышки и выбираем → «Комментировать блок» → /*код*/ (выполнено в текстовом редакторе PHP Expert Editor 4.3)

На примере программы Notepad plus plus:

Я рассказал вам о том как не выводить отдельные записи и целые категории на главной странице блога, в фиде, архивах, категориях и результатах поиска по блогу, с помощью простого кода. Но также стоит дать решение этой задачи с помощью простенького плагина Simply Exclude.

Привет друзья, сегодняшний пост будет небольшой сводкой некоторых событий из интернет-жизни блога, а так же будет полезный хак в конце статьи.

Долгожданный апдейт PageRank от Гугла

Многие уже в курсе, что на днях Гугл сделал апдейт PageRank спустя очень долгое время, и мой блог получил свою первую единичку. Вряд ли мне это что-то даст, но все равно приятно)

Самое забавное, есть у меня другой сайт, молодой и почти пустой — там всего 20 статей в индексе. Трафик в районе 20-30 чел в сутки, беков нет, комментариев нет. Короче я его продвижением не занимался вообще, только наполняю потихоньку. Так вот он получил PR 2, где логика я до сих пор понять не могу =)

Хвастайтесь, у кого еще PR прибавился (убавился ) 🙂

сайт подвергся спам атаке

Последнюю неделю на мой блог идет массированная спам атака — по 700-800 спам комментариев каждый день приходит с разных ip. Такое у меня было всего однажды годика пол назад и быстро закончилось, но сейчас что-то затянулось..

Включил Acismet поэтому не удивляйтесь, если вдруг ваши комменты не сразу появляются на сайте, этот параноик готов всех заклеймить еретиками и сжечь кинуть в спам=) Меры временные и по окончанию атаки (надеюсь она кончится ) плагин отрублю.

Пишу еще один заказной обзор

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

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

Знакомые блогер продает свой пузатый блог

Тимур решил продать свой блог wpget.ru. Тиц 30 PR 2 трафик 200 чел\сутки в среднем, 300+ статей в индексе, сайт зарабатывает на продажах ссылок. Сейчас ставка на телдери всего 12 тысяч, это очень дешево за такой сайт на самом деле, были б свободные деньги сам бы купил)

Жаль конечно что продает, но если надоело и никакого удовольствие блогерство не приносит то оно того не стоит, лучше и правда найти занятие поинтересней для себя.

Как убрать рубрику или запись с главной страницы блога wordpress и RSS ленты

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

Собственно вот сам код:

function hidecategory($query) {
if ($query->is_feed || ($query->is_home && !(is_paged())))
{$query->set("cat","-24");}
return $query; }
add_filter("pre_get_posts","hidecategory");

24 это моя цифра, вы должны будете вставить свою.

Вставляется данный код в functions.php. Суть его следующая — вы допустим хотите скрыть какую-то рубрику, для этого узнаете ее номер ID. Узнать его можно при редактировании рубрики, ID будет написано в адресной строке браузера. Например для моей рубрики «Новости сайта» ID будет 24

Здравствуйте, ребята!

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

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

В каких случаях применять?

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

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

Например, данную статью вы не найдете на главной странице моего блога ни на одной их страницы пагинации (постраничной навигации). В то же время, анонс статьи виден в рубрике "Полезное" и на странице карты сайта "Все статьи".

Без плагина

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

Ниже я буду давать различные куски кода, которые стоит размещать в файле шаблона functions.php.

Исключение конкретных записей по ID

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

function exclude_post($query) { if ($query->is_home) {$query->

if ($query -> is_home )

{ $query ->// id записи (поста)

return $query ; }

В строке 3 числа 1 и 2 являются ID записями, которые не будут отображаться на домашней странице. Прописывать нужно через запятую.

ID записи, страницы и категории узнаете в адресной строке браузера при просмотре через редактор.

Следующий вариант позволит исключить записи из RSS ленты.

Исключение из RSS ленты

Такой код позволит исключить анонсы из новостной ленты и не отправлять их по базе e-mail, если используете сервис подписки и анонсирования с помощью Feedburner.

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

function exclude_post ($query ) {

if ($query -> is_feed )

{ $query -> set ("post__not_in" , array (1 , 2 ) ) ; } // id записи (поста)

return $query ; }

add_filter ("pre_get_posts" , "exclude_post" ) ;

Добавление записей в этом случае и во всех остальных происходит аналогично.

Исключение из рубрик и архивов

Для исключения записей со страниц рубрик, стоит использовать следующий код.

function exclude_post($query) { if ($query->is_category) {$query->set("post__not_in", array(1, 2));} // id записи (поста) return $query; } add_filter("pre_get_posts","exclude_post");

function exclude_post ($query ) {

if ($query -> is_category )

{ $query -> set ("post__not_in" , array (1 , 2 ) ) ; } // id записи (поста)

return $query ; }

add_filter ("pre_get_posts" , "exclude_post" ) ;

Данный код можно модифицировать и применить исключение из архивов. Нужно во 2й строек заменить функцию is_category на is_archive.

Исключение из страницы поиска

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

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

function exclude_post ($query ) {

if ($query -> is_search )

{ $query -> set ("post__not_in" , array (1 , 2 ) ) ; } // id записи (поста)

return $query ; }

add_filter ("pre_get_posts" , "exclude_post" ) ;

Комбинирование нескольких вариантов

Можно совместить все выше предоставленные варианты и исключить записи из всех типов страниц сразу или выборочно на необходимых.

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

  • is_search
  • is_category
  • is_feed
  • is_home

Можно комбинировать все варианты и исключить записи отовсюду или же на некоторых страницах. Например, для исключений из рубрик и главной стоит разместить в файле functions.php следующий код.

function exclude_post($query) { if ($query->is_category || ($query->is_home)) {$query->set("post__not_in", array(1, 2));} // id записи (поста) return $query; } add_filter("pre_get_posts","exclude_post");

function exclude_post ($query ) {

if ($query -> is_category || ($query -> is_home ) )

{ $query -> set ("post__not_in" , array (1 , 2 ) ) ; } // id записи (поста)

return $query ; }

add_filter ("pre_get_posts" , "exclude_post" ) ;

Во 2й строке с условием (if - если) прописаны параметры для категорий (is_category) или главной (is_home).

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

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

function exclude_post($query) { if ($query->is_category || ($query->is_home || ($query->is_archive))) {$query->set("post__not_in", array(1, 2));} // id записи (поста) return $query; } add_filter("pre_get_posts","exclude_post");

function exclude_post ($query ) {

if ($query -> is_category || ($query -> is_home || ($query -> is_archive ) ) )

{ $query -> set ("post__not_in" , array (1 , 2 ) ) ; } // id записи (поста)

return $query ; }

add_filter ("pre_get_posts" , "exclude_post" ) ;

Таким же принципом добавляйте для исключения и другие типы страниц.

Следующим вариантом исключения записей является исключения целых рубрик (категорий).

Исключение целых категорий

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

Структура кода практически аналогична. В нем лишь меняется параметр, который задает исключение поста или категории. В ранее рассмотренных случаях в последней строке был задан параметр исключения записи exclude_post. В новом коде его стоит заменить на exclude_cat.

function exclude_cat($query) { if ($query->is_home) {$query->set("cat","-1, -2, -3");} // id категории return $query; } add_filter("pre_get_posts","exclude_cat");

function exclude_cat ($query ) {

if ($query -> is_home )

{ $query -> set ("cat" , "-1, -2, -3" ) ; } // id категории

return $query ; }

add_filter ("pre_get_posts" , "exclude_cat" ) ;

Как видим, последняя строка потерпела изменений и 3я строка, где изменен параметр, считывающий ID рубрики. ID в данном случае прописывается через черточку, но так же само через запятую.

Принцип построения условия для типов страниц аналогичен рассмотренным вариантам ранее, где я показывал на примере исключения конкретных постов. Стоит изменять 2ю строку, добавляете необходимые параметры для категорий, поиска, архивов или RSS ленты.

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

Плагины

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

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

Плагин Simply Exclude

Скачать плагин можно, как через консоль WordPress с помощью поиска, так и с официального сайта WordPress .

После активации он уже будет работать и можно не настраивать его. Но все же я рекомендую сделать некоторые изменения, чтобы работа с его функциями была более приятной.

После установки и активации сразу переходим в его настройки.

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

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

В настройках имеются 3 вкладки, которые призваны настроить параметры для разных типов страниц:

  • Taxonomies (таксономии) - настройка для функционирования плагина в разделах админ-панели WordPress: рубрики и метки;
  • Post types (типы постов) - для типов постов: статьи и страницы;
  • Users - настройки для пользователей.

Сейчас я дам скриншот настроек первой вкладки (таксономии) и объясню параметры, которые стоит выставить.

  • В первом блоке настроек "Active" необходимо выставить чек-бокс "Active", чтобы плагин добавлял нужные чек-боксы для отключения отображения в рубрики или любые другие типы страниц;
  • Во втором блоке ставим все параметры напротив варианта "Exclude". Он означает, что при включенном чек-боксе в редакторе каждого типа страниц, она будет скрыта от отображения и новые статьи будут по умолчанию открыты для показа. Если поставить параметр "Include only", то поставив чек-бокс, записи будут открыты для показа и новые статьи по умолчанию будут скрыты. Если выбран второй вариант "Include only", то после установки плагина все записи будут скрыты и нужно будет выставить вариант "Exclude";
  • В блоке "Show/Hide" ставим параметр "Show", чтобы нужные чек-боксы отображались в каждом типе страниц для возможности отключения или разрешения отображения.

Такие же параметры стоит проставить и на остальных 2х вкладках настройек плагина Simply Exclude.

Например, вот скриншот вкладки "Post types".

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

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

Например, чтобы проставить настройки для записей, можно перейти в редактор необходимой статьи или же через пункт все статьи. И там и там будут нужные чек-боксы. В редакторе в правой колонке будет блок "Simply Exclude", содержащий 4 чек-бокса для скрытия записи и страниц:

  • Archives - категорий и архивов;
  • Feeds - RSS ленты;
  • Front/Home - главной;
  • Searches - поиска.

Проставив нужный чек-бокс, скроете запись из определенного типа страниц.

В пункте админ-панели WordPress "Все записи" напротив каждого материала в новой колонке с названием "Simply Exclude show" также будут эти 4 чек-бокса. То же самое касается и рубрик. Будет добавлена новая колонка со всеми чек-боксами.


Вот и все по этому плагину. Установив его вы можете очень быстро и гибко изменять параметры отображения конкретных записей или целых рубрик без вмешательства в файлы шаблона.

Плагин Exclude Categories

Плагин предназначен только для скрытия целой рубрики из главной страницы и RSS ленты. Так как этот вариант не требует особой гибкости (создал один раз рубрику и туда добавляет статьи), то я рекомендую реализовать исключение целой рубрики кодом (см. пункт 2).

Скачать плагин можете по кнопке ниже.

После его установки перейдите в настройки (Настройки - Exclude Category) и выберите необходимую рубрику для исключения ее с главной страницы.

Исключение всех записей какой-то рубрики - широко распространенный вариант. Но я вижу в нем недостаток, так как на сайт приходится сильно много публиковать статей для привлечения поискового трафика и все они будут по различным вопросам одной темы.

А пихать различные материалы в одну рубрику - не очень хорошо.

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

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

Желаю прекрасного настроения и великолепного вам дня. До встречи.

С уважением, Константин Хмелев!

Понравилось? Лайкни нас на Facebook