Спам в комментариях 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 и выше, этот способ нуждается в доработке. И вот на эту тему.

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

Привет дорогой читатель! Сегодня речь пойдет про 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 – рано или поздно все блогеры задаются этим вопросом. Есть разные способы борьбы со спамом.Самый простой, но не самый лучший способ это установить палагин.

Вот парочка самых популярных:

Вместо этого я просто сделал эту защиту от спаса вручную – способ очень простой.

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


1. Проверка на спам.

Начнем мы с добавления фильтра спама, у нас в форме комментария будет 2 поля. Одно скрытое – это стандартная форма ‘comment ‘ и второе поле – это новое созданное нами поле. Добавляем функцию которая будет определять, если поле было заполнено комментатором – это видимое в шаблоне, то комментарий пропускается, а если скрытое, то публикация запрещается.

Для этого вставим такой код в 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;
}

2. Добавляем в шаблон новое поле для ввода комментария.

Существует два варианта как это можно сделать:

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

И заменяем его на код:

2. Второй вариант, если в шаблоне для вывода формы комментариев Вы используете функцию comment_form() . Для добавления нового поля откройте файл шаблона 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;
}

На этом все, готово. У нас есть видимое поле для ввода комментария ‘real-comment ‘ (можно использовать любое имя), а стандартное ‘comment ‘ поле скрытое от посетителей. И есть функция которая фильтрует эти поля. Больше автоматический спам вас не побеспокоит.

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

Посетителям вашего блога не надо будет разгадывать каких-либо ребусов — достаточно будет всего лишь поставить галочку в поле «Я не робот», при добавлении своего сообщения. бич всех WP блогов, вне зависимости от их посещаемости.

У меня в день бывало до 60-80 спамных сообщений (все они без ). Для борьбы с ними я использовал плагин Akismet. Он безусловно полезный, но работающий, однако, не безупречно. Иногда Akismet все же заносит в спам вполне легитимные сообщения. Поэтому у меня остро встала задача найти идеальное решение для этой нетривиальной проблемы. Что примечательно, это решение работает у меня уже почти четыре года и эту капчу до сих пор не пробил ни Хрумер, ни какой-либо другой спамерский софт.

DCaptcha — абсолютная защита от спама в WordPress

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

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

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

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

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

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

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

Установка

У меня в данный момент установлена бета версия DCaptcha 0.2b, которая, тем не менее, работает на сто процентов. За четыре года не было ни одного пробоя! Я даже забыл, что такое спам! Красота, но думаю, что как только данный плагин получит широкое распространение (и я, как не печально, способствую этому написанием данной статьи), то спамеры займутся им всерьез.

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

Установка этого расширения чуток отличается от стандартной. Нужно будет выполнить следующие действия:

  1. распакуйте архив с капчей dimoning.ru-captcha.rar, используя ftp-менеджер подключитесь к вашему хосту и загрузите папку dimoning.ru-captcha в папку с плагинами wp-content/plugins/
  2. войдите в админку и выберете вкладку «Плагины»- «Inactive»
  3. найдите строку с DCaptcha и активируйте его
  4. теперь (по ссылке описано, как это сделать в Файлзиле) на папку /wp-content/plugins/dimoning.ru-captcha/num
  5. затем нужно в адресной строке браузера ввести следующий Урл http://vash_site.ru/wp-content/plugins/dimoning.ru-captcha/install.php и нажать «Enter». В результате будет сгенерирован уникальный код , позволяющий защитить капчу от взлома

После установки обязательно проверьте, работает ли капча. Для этого просто зайдите на свой блог как обычный посетитель и попробуйте оставить комментарий. Если вам захочется изменить в настойках DCaptcha надпись «Это не спам», то для этого нужно будет открыть на редактирование файл /wp-content/plugins/dimoning.ru-captcha/dimoning.ru-captcha.php в текстовом редакторе.

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

Это не спам.

и внесите нужные вам изменения. Я, например, сделал надпись красного цвета. Для этого нужно будет всего лишь добавить в файл таблицы каскадных стилей CSS вашей темы оформления wp-content/themes/название_вашей_темы_оформления/style.css следующее свойство:

#dcaptcha { color: red; }

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

Однако, при установленном и активированном плагине спам-комментарии в базу данных писАться не будут, но, правда, это справедливо только в том случае, если у вас отключена, так называемая, «Корзина» , которая появилась в WordPress начиная с версии 2.9. При активной «Корзине» весь спам, отсекаемый этой капчей, будет благополучно падать в корзину и накапливаться там до тех пор, пока она автоматически не очистится.

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

Кстати, именно начиная с версии WordPress 2.9 плагин DCaptcha перестал отсекать спам , что для меня явилось очень большой и неприятной неожиданностью. В какой-то момент я неосмотрительно обновился до версии 2.92 и обнаружил, что стали появляться в большом количестве гадости, от которых я уже успел отвыкнуть.

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

Борьба со спамом в Вордпресс с помощью файла htaccess

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

«htaccess» предназначен для, так называемого, децентрализованного управления веб сервером Apache. Дело в том, что в 99 процентах случаев ваш проект будет размещен на хостинге под управлением сервера Apache. Возможности этого сервера всеми хорошо изучены и к тому же он бесплатен. Так вот, для того, чтобы вебмастер (вы), не имеющий доступа к рычагам управления Apache, тем не менее имел возможность управлять некоторыми аспектами работы сервера и был придуман этот файл.

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

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

Если файла такого в коневой папке WordPress вы не увидите, то возможно, что его там и нет, но сначала вам нужно будет в этом убедиться. Для работы с сайтом по FTP я использую (да и вам тоже советую) замечательную программу FileZilla (см. ссылку выше). После подключения к своему хосту по FTP откройте корневую папку (обычно она называется либо PUBLIC_HTML, либо HTDOCS) и проверьте наличие в ней файла «htaccess».

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

Существует два способа блокировки спам-сообщений в htaccess. Я использовал такой код:

order allow,deny allow from all deny from 109.74.85.150 deny from 124.162.118.179 deny from 124.238.242.103 deny from 124.238.242.36 deny from 143.248.3.35

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

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

Я ухитрился вручную насобирать более 400 IP адресов спамеров. Что мне это в результате дало? Поток спама уменьшился с сотен до десятков. Уже существенно, но очень уж трудозатратно и утомительно. Не намного лучше, чем вручную перелапачивать тоны хлама.

Второй способ блокирования спамеров заключается в добавление в «htaccess» IP адресов всяких редисок с директивами, позволяющими фильтровать спам по ряду признаков. Сам я этот способ не пробовал, ибо сумел таки заставить работать мой любимый плагин DCaptcha под Вордпресс 2.92, о чем сейчас вам и расскажу.

DCaptcha работает на современных версиях WordPress

Для того, чтобы заставить DCaptcha корректно работать на современных версиях WP, как оказалось много не надо. Просто подключитесь по FTP с серверу хостинга, где у вас размещены файлы вашего блога, и откройте на редактирование файл Dimoning.ru-captcha:

Найдите в нем строку:

и замените в ней «delete» на «trash», чтобы в результате получилось так:

Wp_set_comment_status ($id, "trash");

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

Начнем, пожалуй, со второй части вопроса. Порезанные сообщения, при тех настройках, что мы задали чуть выше, попадут либо в разряд «Спам» (в случае замены «delete» на «spam»), либо в разряд «Корзина» (в случае замены «delete» на «trash»).

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

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

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

Давайте, кстати, разберемся, почему не работает оригинальный код DCaptcha, который был в нем по умолчанию:

Wp_set_comment_status ($id, "delete");

Если мы обратимся к кодексу WordPress , то увидим, что для этой функции WP_SET_COMMENT_STATUS в новых версиях (начиная с версии 2.92) уже нет такого значения «delete». На данный момент можно использовать только значения: "hold", "approve", "spam", or "trash".

Т.е. удалить порезанные плагином сообщения с помощью функции WP_SET_COMMENT_STATUS мы уже не сможем, как это можно было сделать с помощью выбора значения "delete" в старых версиях WP.

В версиях движка, начиная с 2.92, мы можем с помощью функции WP_SET_COMMENT_STATUS только переместить мусорные сообщения в корзину (выбрав значение "trash"), либо пометить их как спам (выбрав значение "spam").

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

/wp-content/plugins/dimoning.ru-captcha/dimoning.ru-captcha.php

замените строку:

Wp_set_comment_status ($id, "delete");

на строку

Wp_delete_comment ($id);

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

Как отключить корзину в WordPress

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

Найти его вы сможете в корне удаленного хоста, подключившись к северу вашего хостинга по FTP. Откройте файл WP-CONFIG.PHP на редактирование и добавьте в него строчку кода:

Define("EMPTY_TRASH_DAYS", 0);

Если вы по каким-либо причинам не захотите отключать корзину в Вордпресс на совсем, а только захотите уменьшить время хранения в ней записей, то вставьте в WP-CONFIG.PHP следующую строчку кода:

Define("EMPTY_TRASH_DAYS", 3);

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

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

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

Simple Counters и Category and Page Icons - красивые счетчики RSS и Twitter, а так же иконки для категорий и страниц в WordPress
Comment Toolbar - добавляем в комментарии WordPress возможность ответа и цитирования
Снижение потребляемой в WordPress памяти при создании страниц - плагин WPLANG Lite для подмены файла локализации
Подсветка кода и кнопки форматирования комментариев в WordPress - SyntaxHighlighter и Comment Form
Google XML Sitemaps - создание карты сайта для WordPress
Создание в WordPress карты блога для посетителей (плагины Sitemap Generator и WP DS Blog Map)
Создание списка похожих материалов в WordPress (с миниатюрами) при помощи плагина Related Posts для внутренней линковки
Как проверить сайт на битые ссылки - Xenu Link Sleuth, плагин и онлайн-сервис Broken Link Checker, а так же поисковые системы
Subscribe To Comments для WordPress - подписка на комментарии к статьях в Вордпресс Как в плагине Yet Another Related Posts убрать прозрачный пиксель http://yarpp.org/pixels и изменить надпись Похожие материалы

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

Установка и настройка плагина Akismet

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

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

И так, для того чтобы защитить свой сайт от спама нужно сделать следующее:

1. Активируем плагин Akismet . Плагин автоматически устанавливается по умолчанию при установке WordPress. Если вы его случайно удалили — скачайте и установите повторно.

2. Теперь нам необходимо получить API-ключ . Для этого нужно зарегистрироваться на официальном сайте плагина http://akismet.com/wordpress/.

После того как зашли на сайт плагина , нажимаем по кнопке «GET AN AKISMET API KEY» .

3. В открывшемся окне указываем рабочий почтовый ящик , логин и пароль для регистрации. После ввода данных нажмите кнопку «Sign up». Также проверьте почтовый ящик который вы указали при регистрации. На него придет письмо, внутри которого нужно нажать кнопку « Activate Account» для активации аккаунта.

4. После нажатия кнопки «Sign up» вы перейдете на новую страницу, на которой нужно в первом блоке «Personal» нажать по кнопке «SIGN UP» .

5. В открывшемся окне указываем имя и фамилию. Ползунок справа перетаскиваем в самое начало, на показатель «0,00/yr» и нажимаем кнопку «CONTINUE».

6. После нажатия кнопки появится всплывающее окно, в котором будет указан ваш API-ключ .

7. Скопируйте ключ и перейдите с административной панели WordPress в Настройки -> Akismet .

8. Вставьте скопированный API-ключ и нажмите кнопку «Подключить» .

Готово! Теперь плагин Akismet настроен, и начнет защищать ваш сайт от спама. Заметьте, что API-ключ который вы получили можно использовать на всех ваших сайтах построенных на WordPress.

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

Здравствуйте, друзья! В этом уроке мы поговорим о том, как защитить свой сайт на WordPress от спама в комментариях. Проблема спама актуальна и достаточно болезненна для многих владельцев сайтов, но если ваш сайт построен на WordPress - проблему защиты от спама можно решить очень быстро, просто и навсегда. Установка и настройка плагина Akismet Защищать сайт от спама мы будем с помощью возможно лучшего плагина для защиты от спама - Akismet. Данный плагин используют миллионы людей, а его надежность проверена мной лично на этом сайте. Плагин для персонального использования полностью бесплатный! Из приятного можно отметить то, что данный плагин для защиты использует не раздражающие…

Обзор

Проголосуйте за урок

100