Защита от спама в wordpress
Заметки по Wordpress

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

Защита от спама в WordPress

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

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

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

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

[spoiler name=”Необходимые данныеДля открытия – нажмите“]
1. Проверка на спам.

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

Для этого вставим такой код в functions.php:
[crayon lang=’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;
}
[/crayon]

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

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

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

[crayon lang=’html’]

[/crayon]и заменяем его на код:[crayon lang=’html’]


[/crayon]

2. Второй вариант, если в шаблоне для вывода формы комментариев Вы используете функцию comment_form(). Для добавления нового поля откройте файл шаблона functions.php и добавьте туда код:

[crayon lang=’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;
}
[/crayon]

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

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

[/spoiler]

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

 

 

Новые посты

Похожие записи с картинками wordpress без плагина

Гордеев Игорь

Постраничная навигация в CustomPostType без плагина

Гордеев Игорь

Как отключить админ-панель в WordPress для всех кроме администраторов