WordPress комментарии на сайте без спама

Wordpress комментарии на сайте без спамаДля защиты комментариев на сайте от надоедливого спама в формах комментариев под статьями есть хорошие плагины. Многие из них заслуживают внимания.

Все же, они не идеальны и нежелательные посты просачиваются, да ещё и в спам улетают качественные комментарии, чего допускать совершенно невозможно.

Как же избавить wordpress комментарии на сайте от спама навсегда?

Способ не так сложен, но придётся покопаться в коде. Радует то, что автоматический спам исчезнет навсегда, а качественные комментарии будут дополнять статьи. При этом сайт не будет перегружаться некорректно работающими плагинами.

Чтобы понять как действует схема, давайте рассмотрим работу робота-спамера. Бот заходит на ресурс, находит поле для ввода комментариев, заполняет форму необходимым спамом, обводит каптчу и пост попадает сразу на сайт или в панель администратора. Роботу не всегда удаётся обойти каптчу, но они совершенствуются, поэтому пришло время обмануть робота.

Для обмана робота подставим ложную форму комментариев, после заполнения которой запись уйдёт в никуда. Для реальных же посетителей добавим дополнительную форму, заполнив которую пост окажется под статьёй. Спам-роботы найдут первую форму и запишут в неё свои данные. Для естественных посетителей будем использовать форму №2.

Перед нарезкой и правкой кода, необходимо сделать резервную копию, для возможности восстановления сайта в прежнее состояние. Файлы, требующие корректировки размещаются в используемой сайтом теме. Приступаем к нарезке кода.

1. Находим в файле comments.php часть кода, отвечающую за вывод формы комментариев под статью. В нём содержится тег «textarea name=». Часть кода будет выглядеть примерно так:

<p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>

2. Копируем эту часть кода и вставляем рядом с оригинальной, то есть получится две одинаковых строки.

<p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>
<p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p>

Далее нужно изменить атрибут name и id. Я предлагаю добавить приставку main.  Вот что примерно должно получиться:

<p><textarea name="main-comment" id="main-comment" cols="100%" rows="10" tabindex="4"></textarea></p>

Вторая форма успешно создана.

3. В файле style.css внизу кода прописываем строчку:

#comment {display:none;}

4. Добавляем фильтр, который отключает публикацию комментариев из первой формы, передавая все полномочия второй. Находим и открываем файлик 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['main-comment']);
  $_POST['comment'] = $comment_content;
  return $commentdata;
}

Сохраните все три файла на хостинг. Проверьте работоспособность формы. Если не попали с размерами 10*70 (шаг №2) — подставьте свои. Вот и все, надоедливые спам-боты ликвидированы. Этим самым мы защитили wordpress комментарии на сайте от спама.


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

  

Это должно вас заинтересовать:

Обсуждение: 3 комментария

  1. Devakpiori:

    А, что очень даже интересно,спасибо за информацию.

    Ответить
    1. На здоровье.

      Ответить
  2. GeorgeVoita:

    Да, интересно все, спасибо вам за информацию.

    Ответить

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

© 2017 Сам Веб-мастер | Автор: Дмитрий Марченков | Дизайн и поддержка: GoodwinPress | Разрешается копирование материалов без изменений, с указанием имени автора и гиперссылки на сайт.