Защита от спама без плагина

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

Вот два самых популярных:

Akismet
Antispam Bee

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

 

 

 

Для начала мы идем в папку нашего шаблона и открываем файл 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;
}

затем открываем файл comments.php
и вместо

<textarea id="comment" class="textarea" name="comment"></textarea>

вставляем

<textarea id="comment" class="textarea" style="display: none;" name="comment"></textarea>
<textarea id="real-comment" class="textarea" name="real-comment"></textarea>

Т.е. мы скрываем стандартное поле для ввода комментария ‘comment‘ и заменяем его на новое созданное поле ‘real-comment‘. Для посетителей все останется без изменений они и не заметят разницы, а вот спам-скрипты при попытке заполнить стандартное поле с именем ‘comment‘ будут попадать на фильтр запрещающий им комментировать.
ВАЖНО: ‘real-comment‘ на всякий пожарный замените на свой уникальный аттрибут дабы не повадно было спаммерам подстраиваться )).



Добавить комментарий