Защита WordPress от спама в комментариях. Убираем ссылки. Защита от спама на WordPress

  • 18.06.2019

На одном из моих проектов, где доступна регистрация пользователей и постинг заметок от их имени, значительно увеличилось количества спама. И если с похожей проблемой для комментариев помогает справиться , то в данном случае пришлось искать другое решение. Раньше я удалял новых пользователей по одному через админку вордпресс (по 10-20штук в неделю это не проблема). Однако сейчас спам регистраций насчитывается больше сотни за пару дней. Тратить на это время каждый раз неохота, поэтому решил всерьез разобраться с негодниками. Пост состоит из двух частей — первая защита от спам регистраций, а вторая — удаление неактивных пользователей.

Защита от спам регистраций

Очевидно, что для этого решения будем использовать каптчу. Как-то в блоге я публиковал заметку про , где были:

  • Captcha Code — картинка с простыми цифрами (такие ломают чаще всего).
  • WP-reCAPTCHA — плагин относительно старый плюс для работы надо получить ключ.
  • Secure CAPTCHA — еще один древний модуль, что не обновлялся более 2х лет.
  • Captcha by BestWebSoft — математическая каптча.
  • SI CAPTCHA Anti-Spam — самый популярный модуль со множеством настроек.

Ничего плохого не могу сказать про последний вариант, просто мне хотелось настроить все максимально быстро и просто. В итоге выбрал Captcha by BestWebSoft, где пользователю нужно ввести недостающее число в уравнении.

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

После установки плагина Captcha by BestWebSoft нужно указать некоторые настройки каптчи.

Здесь определяете:

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

После установки настроек, сохраняете их.

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

Update 15.07.2015. К сожалению, плагин Captcha by BestWebSoft, а затем и SI CAPTCHA Anti-Spam не смогли защитить от спам регистраций на сайте. Поток ботов уменьшился, но в целом результат каптчи не удовлетворительный. Пришлось искать другое решение — . Данная каптча от Google действительно справилась со своей задачей, за несколько дней не было ни одного случая регистрации ботов. Рекомендую!

Удаление неактивных пользователей

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

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

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

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

Что же касается Inactive User Deleter, то работать с ним достаточно просто. После установки заходите в раздел «Пользователи» пункт меню Inactive users.

Здесь есть несколько параметров выборки юзеров:

  • пользователи без одобренных комментариев;
  • имеющие спам комментарии;
  • не разместившие никаких записей на сайте;
  • созданные более чем Х дней назад;
  • уровень пользователей;

Для удобства есть также выбор сортировки результатов. Хорошо, что по каждому юзеру отображается вся статистика — число постов, комментариев. Для массового удаление просто отмечаете несколько (или всех сразу) пользователей. Единственное, чего не хватает — выборки пользователей по дате создания. То есть модуль Inactive users ориентирован в первую очередь на старые регистрации, которые спустя некоторое время так и не были активны. Вывести, скажем, всех юзеров за последние 2-3 дня не получится (только через phpMyAdmin и редактирование базы данных напрямую).

Напоследок пару слов о модуле Stop Spammers Spam Prevention , который достаточно часто упоминают при борьбе со спам регистрациями.

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

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

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

В общем, решил попробовать, внедрил хак на свой блог. После трех месяцев полет удачный, ни одного спам комментария за три месяца. В это трудно конечно поверить, но это так. После эксперимента пришел к выводу, что мои читатели просто обязаны знать про защиту wordpress от спам комментариев, с помощью полезного хака — «подмена полей»!

Суть метода!

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

Думаю, стоит отметить два больших плюса такого танца с бубном: первое — избавляемся от постоянной проблемы авто спам и второе — больше не придется править файлы движка после обновления WordPress. Правда как всегда есть и минус, придется подшаманить два файла в нашей теме, comments.php и style.css . Но как по мне, данный минус незначителен.

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

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

В общем, все просто как дважды два. Человек заполняет видимое поле real-comment , а спам-скрипт заполнит по старинке стандартное поле comment , но уже невидимое. Заполненное невидимое поле и будет спам комментарием! :-) Думаю самое время приступить к делу!

1. Комментарии через функцию «comment_form ()»

Если у вас комментарии выводятся через функцию comment_form() (эта функция была введена в WordPress 3.0 для того, чтобы с помощью файла functions.php , можно было полностью заменить стандартную форму комментариев). Если ваш шаблон использует именно такую функцию, то необходимо открыть файл functions.php и добавить туда следующий код:

//Добавление своего поля для ввода комментария add_filter("comment_form_defaults", "change_comment_form_defaults"); function change_comment_form_defaults($default) { $commenter = wp_get_current_commenter(); $default["comment_notes_after"] .= "

"; return $default; } //END добавление своего поля для ввода комментария

Теперь скрываем наше стандартное поле comment , через файл «style.css» :

Comment-form-comment {display: none;}

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

2. Комментарии не через функцию «comment_form ()»

Если у вас комментарии выводятся не через функцию comment_form() , как у меня! В этом случае открываем файл comments.php и находим там код, выводящий поле для ввода комментария. Что-то похожее на:

Данный код необходимо заменить на:

Теперь надо скрыть стандартное поле для ввода комментария. Для этого откройте файл стилей вашего шаблона «style.css» и добавьте туда код:

No-spam {position: absolute; left: -1000px;}

No-spam {display: none;}

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

//Проверка на спам add_filter("pre_comment_on_post", "verify_spam"); function verify_spam($commentdata) { $spam_test_field = trim($_POST["comment"]); if(!empty($spam_test_field)) wp_die("Спаму нет!"); $comment_content = trim($_POST["real-comment"]); $_POST["comment"] = $comment_content; return $commentdata; } //END проверка на спам

Вот в принципе и все! Теперь спам комментарии больше вас и ваш блог не потревожат. Если вы сомневаетесь, все ли сделали правильно, можете проверить работу данного хака по защите wordpress от спама. Для этого необходимо убрать из файла style.css внесенные изменения, обновить страничку блога, заполнить каждое поле комментариев и попытаться опубликовать комментарий!

Все вопросы, пожелания и замечания, пишите в комментариях к статье.

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

Очень большая доля сайтов в сети — это блоги. Ну а поскольку речь идет о WordPress, то сделать блог на нем, как говорится, сам Бог велел. Ведь WordPress изначально и создавался, как в первую очередь блоговый движок. Ну а какой же блог да без комментариев? Правильно, блог без комментариев уже и блогом назвать как-то язык не поворачивается. Ведь каждый блоггер, написав свежую статью, хочет получить обратную связь в виде общения с читателями в комментариях.

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

Именно поэтому одной из важных задач при ведении сайта на WordPress будет его защита от спама. Для начала давайте посмотрим, какие средства защиты предлагает нам WordPress из коробки. Для этого перейдем на страницу Настройки — Обсуждение.

Здесь нам могут помочь следующие настройки:

Пользователи должны быть зарегистрированы и авторизованы для комментирования

Комментарий должен быть одобрен вручную

Модерация комментариев

Чёрный список

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

Конечно же, это, можно сказать, ограничение свободы слова Однако, к сожалению, в современных реалиях это практически вынужденная мера. На первом этапе принятых мер будет вполне достаточно для того, чтобы защитить ваш сайт на WordPress от спама. Если на вашем сайте «поселится» спамер и регулярно будет оставлять спамовые сообщения, тогда вы дополнительно можете занести его в Черный список, используя для этого целый набор признаков (e-mail, URL, IP и другие).

Однако может так статься, что со временем модерировать и вычищать спамовые комментарии вам станет все сложнее, поскольку таких комментариев станет все больше. Вы вполне можете за сутки удалить несколько десятков вот таких вот спамовых комментариев. Как же быть? В этом случае нам потребуется более весомая защита от спама, нам нужен плагин.

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

После установки плагина в меню появится новый пункт — Captcha.

Здесь нам предлагают настроить капчу на свой вкус. Например, мы можем выбрать тип кода (буквы/числа) и букв (заглавные/маленькие буквы). Что особенно интересно, так это то, что капчу мы можем поставить не только для формы комментариев, но и для других форм на сайте WordPress: для формы авторизации и регистрации и для формы восстановления пароля. Также мы можем скрыть капчу для авторизованных пользователей.

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

Вот, собственно, и все. Как видим, защитить ваши комментарии от спама в WordPress — довольно просто. К слову, если вы хотите узнать, как создаются такие плагины, тогда предлагаю вам познакомиться с нашим курсом по изучению .

На этом у меня все. Удачи!

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

Почитал про разные имеющиеся на рынке плагины — как с капчей, так и без нее. И по ходу дела несколько раз наткнулся на описание того способа избавления от спама в WordPress , который в итоге и применил. У него есть ряд преимуществ и всего один недостаток — придется чуток покопаться в коде (но самую малость). Зато в результате получаете рабочий вариант спаморезки, без и без создания дополнительной нагрузки на блог за счет установки плагина.

Как направить спам-ботов по ложному пути?

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

Однако, робота этого можно попытаться обмануть в той области, где не шибко искушен. Главное, чтобы он считал, что с успехом выполнил свою работу — распространил спам по страницам вашего блога. Для обмана мы добавим на сайт еще одну форму для ввода текста комментария . Если их будет две, то какую выберет робот для добавления поста? Правильно, скорее всего, первую. Тут ведь действует та же логика, что и в ироничной миниатюре про два девятых вагона, когда все логично считали, что 9 вагон это тот, который следует сразу после 8, а не тот, что находится перед 10.

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

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

Итак, чтобы все это дело реализовать на практике, большого ума не надо. Однако, по традиции, советую вас . Все файлы, которые нам понадобятся, находятся в папке с используемой вами темой оформления (/wp-content/themes/имя_темы). , чем редактировать эти файлы через админку WordPress, ибо во втором случае у вас могут возникнуть проблемы с отменой внесенных изменений.

Самодельная спаморезка в теме оформления WordPress

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

Теперь копируете эту строку (не мою, а свою, в вашем файлике comments.php) и вставляете сразу за самой собой, чтобы получилось примерно так:

Если заметили, то я во второй строке заменил name="comment" id="comment" на name="struktura" id="struktura" . Вы должны сделать то же самое, но только вместо struktura использовать можно все, что угодно (потом просто замените это в коде фильтра приводимого чуть ниже).

Понятно, да? Мы таким образом создали вторую форму для ввода комментария (если сохраните сейчас произведенные изменения, то увидите в реале две этих формы на своем блоге). Первая из них будет «пустышкой» для наивных спам-роботов (мы ее сейчас спрячем от глаз пользователей), а вторая будет рабочей формой, которой и будут пользоваться ваши комментаторы, ибо ничего другого они и не увидят.

Поэтому следующим шагом будет открытие файлика style.css из папки с вашей темой оформления. Где-нибудь внизу его можете дописать:

#comment {display:none;}

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

Textarea#struktura {margin-top:-60px;overflow:hidden; } textarea#comment input {margin-top:10px;}

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

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

Add_filter("pre_comment_on_post", "verify_spam"); function verify_spam($commentdata) { $spam_test_field = trim($_POST["comment"]); if(!empty($spam_test_field)) wp_die("спам"); $comment_content = trim($_POST["struktura"]); $_POST["comment"] = $comment_content; return $commentdata; }

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

Удачи вам! До скорых встреч на страницах блога сайт

посмотреть еще ролики можно перейдя на
");">

Вам может быть интересно

Смайлики в WordPress - какие коды смайлов вставлять, а так же плагин Qip Smiles (красивые смайлики для комментариев)
reCAPTCHA - простейшая капча Я не робот от Google Как отключить комментарии в WordPress для отдельных статей или всего блога, а так же убрать или наоборот подключить их в шаблоне Граватар - как создать глобальный аватар и настроить вывод иконки Gravatar в теме Вордпресса
Как войти в админку WordPress, а так же поменять логин и пароль администратора выданные вам при установке движка Пустая страница при просмотре больших постов (статей) в WordPress Пропало левое меню в админке WordPress после обновления

Друзья, всем привет. Сегодня буду говорить о наболевшем. Уверен, каждый владелец сайта рано или поздно сталкивается с проблемой СПАМа. Как правило, это проблема появляется, когда блог начинает развиваться. Я вот поначалу, создал блог и не напрягался по этому поводу, ну был один–два спам-комментарий в день, так я их легко убирал вручную. Но, дальше хуже, спама всё больше и больше. Тогда я решил выбирать из двух зол.

Решил пожертвовать ресурсами сервера, но избавится от спама. Установил и активировал плагин . Результат меня порадовал, 99% защиты от спама. Хотя это может быть и 100%. Но, у этого плагина свои алгоритмы работы и иногда хорошие комментарии попадают в спам.

Поэтому я не стал автоматически очищать папку спам, проверяю её и выдёргиваю хорошие комментарии, если они туда попали. Ну и казалось бы всё хорошо, так вот теперь надоело просматривать папку СПАМ. В последнее время у меня не так много времени, и успеваю просматривать блог пару раз в день. Так, за день у меня бывает до 250 спам-комментариев. Вот пример, сегодня до обеда уже 78 комментариев в папке спам.

А ещё есть «чудесники», которые занимаются ручным спамом. Но для них есть свои рычаги воздействия. Мы же поговорим, как избавиться от автоматического спама, рассылаемого спам-ботами. И при этом не придётся чистить папку СПАМ.

Суть метода

Этот метод, прежде всего, хорош тем, что на 100% защищает от СПАМа и при этом без плагина. А плагин выполняющий до этого эту защитную функцию вы сможете отключить и тем самым ускорить работу вашего сайта/блога.

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

Как создать подмену формы комментария

Шаг 1. Определяем, какой функцией выводится поле «Текст комментария»

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

В контекстно-зависимом меню нажмите на пункт «Исследовать элемент» (или что-то подобное, в разных браузерах по-разному).

А теперь посмотрите на исходный код:

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

Эту строчку кода нужно будет найти в файле comments.php . Если подобной строки кода у вас нет, то реализация вашего случая будет описана в конце статьи.

Шаг 2. Создаём дубликат текстового поля «Текст комментария»

Переходим в административную панель WordPress – раздел «Внешний вид» «Редактор» . Открываем для редактирования файл comments.php . Находим в этом файле текстовое поле для ввода комментария. Нажмите CTRL+F и ищите textarea.

Теперь нужно скопировать весь этот код и вставить его ниже. У вас должно получится две одинаковые строчки кода.

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

Placeholder="Введите текст комментария"

Тогда вся строчка кода будет выглядеть вот так:

Сохраняем внесённые изменения.

Шаг 3. Скрываем оригинальное поле «Текст комментария»

Сейчас, если вы посмотрите на свою форму комментария, то у вас будет два текстовых поля. Одно из них нужно скрыть. И поможет нам в этом идентификатор (id). Этот идентификатор можно использовать для придания стиля. Хотя можно определить стиль прямо в строке с кодом текстового поля, но мы это будем делать в файле style.css . Это тоже ради поддержания высокой скорости загрузки сайта.

Итак, открываем файл таблицы стилей style.css. Нам нужно добавить стиль, который будет скрывать одно текстовое поле. Этот стиль можно добавить в самом низу этого файла.

/*скрываем форму комментария*/ #comment {display:none;}

Шаг 4. Подключение фильтра для проверки комментариев.

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

Для этого открываем файл функции темы (functions.php ), и добавляем вот этот код:

/*фильтр для спама*/ add_filter("pre_comment_on_post", "verify_spam"); function verify_spam($commentdata) { $spam_test_field = trim($_POST["comment"]); if(!empty($spam_test_field)) wp_die("спам"); $comment_content = trim($_POST["main-comment "]); $_POST["comment"] = $comment_content; return $commentdata; } /*фильтр для спама*/

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

Примечание: если для атрибутов name и id вы использовали предложенную мной приставку main, то в этом коде менять ничего не надо. Если же вы использовали свою приставку или свой набор символов, то необходимо изменить подсвеченный цветом фрагмент кода.

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

Что делать если текстовое поле формируется не через textarea

Если при просмотре файла comments.php, вы не обнаружили текстового поля textarea. Значить у вас стандартная форма комментариев выводится через функцию comment_form . Как правило, работа этой функции прописана в файле функции темы (functions.php ). Вы легко сможете её найти с помощью поиска CTRL+F. В общем, вам нужно сделать дубликат формы комментариев. Для этого найдите в файле подходящее место, как я показывал выше, и вставьте вот этот код:

/*новая форма комментария*/ add_filter("comment_form_defaults", "change_comment_form_defaults"); function change_comment_form_defaults($default) { $commenter = wp_get_current_commenter(); $default["comment_notes_after"] .= "

"; return $default; } /*новая форма комментария*/

Теперь вставьте код для проверки на спам, который я приводил в четвёртом шаге. Сохраняете файл функции темы (functions.php) и переходите в файл таблица стилей (style.css).

Здесь нужно добавить стиль для сокрытия стандартного текстового поля ввода комментария.

Comment-form-comment {display: none;}

Всё, задание выполнено. Теперь спам не пройдёт.

Кстати, если ваша стандартная форма отличается по ширине и по высоте, то измените параметры строк и колонок (rows="8" cols="45") .

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

Также посмотрите видеоурок, так этом метод станет для вас ещё понятней.

На этом у меня сегодня всё, желаю вам удачи и 100%-е отсутствие спама. Всем пока, и до встречи в новых статьях и видеоуроках.

Дополнение: после обновление WordPress до версии 4.4 и выше, этот способ нуждается в доработке. И вот на эту тему.

С уважением, Максим Зайцев.