Последнее время спамеры совсем распоясались. Стоит только отключить плагин антиспама, так сразу, в течение ближайших 10 минут вы получите десяток идиотских предложений типа "Выигрывайте в казино" или "Поделюсь рецептом как заработать состояние за три дня не вставая с дивана".
Защита от спама является первостатейной задачей каждого владельца сайта.
Обычно для этого используют плагины. На своих сайтах до последнего времени я использовала плагин wp-spamfree. Плагин неплохой, но и у него есть недостатки.
Поэтому, когда я нашла на сайте studio-gost.ru способ защиты от спама без плагинов, то сразу же протестировала его на этом блоге.
Способ оказался простым и очень действенным - за месяц использования я не получила ни одного видимого спам-комментария.
Как известно, спамеры умеют записывать комментарии не только через форму комментариев на сайте, но непосредственно в базу данных сайта через файл wp-comments-post.php поэтому, прежде, чем писать этот пост я зашла в PhpMyAdmin, открыла таблицу Comments в базе данных и просмотрела ее - спама нет.
Итак, как защитить свой сайт от спама в комментариях?
Содержание:
- 1. Если комментарии выводятся с помощью comments_template()
- 2. Если комментарии выводятся с помощью функции comment_form()
Нужно спрятать стандартное поле для ввода комментария "comment" и заменить его на новое поле "real-comment".
Посетители вашего сайта не заметят разницы, а скрипты для спама при попытке заполнить стандартное поле с именем "comment" будут отсеиваться фильтром, запрещающим комментарии через стандартное поле "comment".
Вот так просто и изящно.
Давайте сделаем это.
↑ 1. Если комментарии выводятся с помощью comments_template()
Откройте файл comments.php, найдите в нем тег
<textarea id="comment" name="comment"></textarea> |
и замените его следующим:
<textarea id="comment" style="display: none;" name="comment"></textarea> <textarea id="comment" class="textarea" name="real-comment"></textarea> |
Название поля real-comment в последней строке замените своим названием.
Теперь откройте файл functions.php и добавьте в конец файла, перед закрывающим ?> следующий код:
Открыть ↓
Вот и все.
Проверить работу этого антиспама можно на страничке которую создал Kama - http://wp-kama.ru/wp-content/uploads/2010/07/kama_spamblock_checker.html
P.S. Забыла добавить, что теперь можно отключить и плагин против спама и капчу - надобности в них больше нет.
Я нашёл, что у меня комментарии выводятся с помощью функции comment_form()
Куда вставлять код, если у меня таких значков "?>" в фале function куча?
при добавлении просто в конец файла у меня появляется 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'] .='
Комментарий
';
return $default;
}
Вот и все.
Вот я и вставил его и получил два коментария.
Спасибо за реально полезную информацию, все разжевано и разложено по полочкам.
Не скажете, почему у вас на шаблоны такой разброс цен?
Сколько копий продаете за обозначенную стоимость?
Пожалуйста :).
Цена зависит от сложности и функциональности шаблона.
Простые шаблоны стоят дешевле, сложные, соответственно, дороже.
Копий продается, как правило, до 100.
Но, иногда, больше.
в обозревателе Firefox, некорректно отображаются комментарии к Вашим записям
В какой версии FF?
Вы можете прислать мне скриншот?
Версия 22.0
Сомневаюсь что скриншот поможет. При загрузке страницы, на мгновение все комментарии есть (развернуты), но после сразу исчезают и остаётся только самый последний, но если необходимо скриншо могу сделать. Может конечно дело в том, что у меня установлено несколкьо плагинов на FF, но раньше подобной проблемы не встречал.
Благодарю Вас за статью, для меня она оказалась весьма полезна.
Скорее всего, причина в дополнениях для браузера.
У меня стоит FF и все комменты на месте.