• ДОБРО ПОЖАЛОВАТЬ В КЛУБ ПО WORDPRESS

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

    Присоединяйтесь к нам, вам обязательно понравится - Присоединится
Иконка ресурса

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

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

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

Способ заключается в том, что мы скрываем стандартное поле для ввода комментария ‘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;
}
2. Добавляем в шаблон новое поле для ввода комментария

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

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

Не забываем оставлять свои комментарии без спама : )
Автор
Попай
Просмотры
1,295
Первый выпуск
Обновление
Оценка
0.00 звёзд Оценок: 0

Другие ресурсы пользователя Попай

Сверху