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

Share on Pinterest
Share with your friends










Отправить
20
Всего

защита от спама wordpress

Защита от спама в 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 шаблона, находим там что-то похожее на данный код:

<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>

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'] .=
'<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‘ поле скрытое от посетителей. И есть функция которая фильтрует эти поля. Больше автоматический спам вас не побеспокоит.

Проверить работу  защиты от спама можно  на страничке  которую создал —  Kama

Не забываем оставлять свои комментарии без спама : )

Источник: Студия-ГОСТ

 

Обновление:

Если вам надо использовать в комментариях смайлики, то как один из вариантов решение описан тут.

Share on Pinterest
Share with your friends










Отправить
20
Всего


Похожие записи

Комментарии к “Защита от спама в WordPress без плагина”
  1. Anatoliy 24.03.2016
  2. Anatoliy 24.03.2016
  3. Anatoliy 24.03.2016
  4. Anatoliy 24.03.2016
  5. Anatoliy 25.03.2016
  6. EvgeniyM 05.10.2016
  7. petrthefirst 05.10.2016
  8. Celana 05.10.2016
  9. Hina 05.10.2016
  10. Garri 05.10.2016
  11. dins1904 05.10.2016
  12. Alexander 05.10.2016
  13. Svetka 05.10.2016
  14. Mvuser 05.10.2016
  15. Ekaterina 05.10.2016
  16. Garri 05.10.2016
  17. Anatoliy 05.10.2016
  18. Garri 05.10.2016
  19. Anatoliy 05.10.2016
  20. Anatoliy 05.10.2016
  21. Garri 05.10.2016
  22. Anatoliy 05.10.2016
  23. Garri 05.10.2016
  24. Anatoliy 05.10.2016
  25. Garri 05.10.2016

Напишите ответ