Как исключить записи и категории с главной страницы блога WordPress, rss ленты, результатов поиска, архивов и категорий! Все в куче — Апдейт PR, спам атака, как убрать рубрику с главной в wp Wordpress убрать из конкретной записи.

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

Долгожданный апдейт 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 на вашем сайте, то вы попали по адресу.

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

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

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

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

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

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

Делается все очень просто через админ-панель 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.

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

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

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

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

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

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

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

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

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