Защита от спама в WordPress — рано или поздно все блогеры задаются этим вопросом. Есть разные способы борьбы со спамом.Самый простой, но не самый лучший способ это установить палагин.
Вот парочка самых популярных:
Способ заключается в том, что мы скрываем стандартное поле для ввода комментария ‘comment‘ и заменяем его на новое созданное поле ‘real-comment‘. Для посетителей все останется без изменений они и не заметят разницы, а вот спам-скрипты при попытке заполнить стандартное поле с именем ‘comment‘ будут попадать на фильтр запрещающий им комментировать.
1. Проверка на спам
Начнем мы с добавления фильтра спама, у нас в форме комментария будет 2 поля. Одно скрытое — это стандартная форма ‘comment‘ и второе поле — это новое созданное нами поле. Добавляем функцию которая будет определять, если поле было заполнено комментатором — это видимое в шаблоне, то комментарий пропускается, а если скрытое, то публикация запрещается.
Для этого вставим такой код в functions.php:
2. Добавляем в шаблон новое поле для ввода комментария
Существует два варианта как это можно сделать:
1. Если у Вы используете вывод формы комментария не через функцию comment_form()(полностью заменяет форму комментария). В этом случае редактируем файл comments.phpшаблона, находим там что-то похожее на данный код:
и заменяем его на код:
2. Второй вариант, если в шаблоне для вывода формы комментариев Вы используете функцию comment_form(). Для добавления нового поля откройте файл шаблона functions.php и добавьте туда код:
На этом все, готово. У нас есть видимое поле для ввода комментария ‘real-comment‘ (можно использовать любое имя), а стандартное ‘comment‘ поле скрытое от посетителей. И есть функция которая фильтрует эти поля. Больше автоматический спам вас не побеспокоит.
Проверить работу защиты от спама можно Для просмотра ссылки Войдиили Зарегистрируйся которую создал — Kama
Не забываем оставлять свои комментарии без спама : )
Вот парочка самых популярных:
- Для просмотра ссылки Войди
или Зарегистрируйся - Для просмотра ссылки Войди
или Зарегистрируйся
Способ заключается в том, что мы скрываем стандартное поле для ввода комментария ‘comment‘ и заменяем его на новое созданное поле ‘real-comment‘. Для посетителей все останется без изменений они и не заметят разницы, а вот спам-скрипты при попытке заполнить стандартное поле с именем ‘comment‘ будут попадать на фильтр запрещающий им комментировать.
1. Проверка на спам
Начнем мы с добавления фильтра спама, у нас в форме комментария будет 2 поля. Одно скрытое — это стандартная форма ‘comment‘ и второе поле — это новое созданное нами поле. Добавляем функцию которая будет определять, если поле было заполнено комментатором — это видимое в шаблоне, то комментарий пропускается, а если скрытое, то публикация запрещается.
Для этого вставим такой код в functions.php:
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;
}
Существует два варианта как это можно сделать:
1. Если у Вы используете вывод формы комментария не через функцию comment_form()(полностью заменяет форму комментария). В этом случае редактируем файл comments.phpшаблона, находим там что-то похожее на данный код:
HTML:
<textarea id="comment" class="textarea" name="comment"></textarea>
HTML:
<textarea id="comment" class="textarea" style="display: none;" name="comment"></textarea>
<textarea id="real-comment" class="textarea" name="real-comment"></textarea>
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'] .=
'<p class="comment-form-real-comment"><label for="real-comment">Комментарий</label><textarea id="real-comment" cols="45" name="real-comment" rows="8"></textarea></p>';
return $default;
}
На этом все, готово. У нас есть видимое поле для ввода комментария ‘real-comment‘ (можно использовать любое имя), а стандартное ‘comment‘ поле скрытое от посетителей. И есть функция которая фильтрует эти поля. Больше автоматический спам вас не побеспокоит.
Проверить работу защиты от спама можно Для просмотра ссылки Войди
Не забываем оставлять свои комментарии без спама : )