Долой спамеров!
Ля-ля-ля, спамеры идут лесом строевым шагом! И не надо накакой капчи устанавливать и не надо нагружать движок плагинами, все идеально и просто.
За последние недели меня просто-таки доканали десятки спам-комментариев про шлюх, оргазмы и пенисы. Были комменты и на другие тематики, но среди моря порнухи они даже заметны не были. Конечно, я мечтала избавиться от такого наплыва говна. Но как же это сделать без плагинов, если я терпеть не могу нагружать движок? Способ был найден!
Итак задача, как сделать чтобы спамерский автомат перестал пулять в ваш блог мильёны комментариев? Очень и очень просто.
Идем в папку с шаблоном, на котором работает ваш блог, — /wp-content/themes/название темы/, и находим там файлы comments.php и comments-popup.php. В зависимости от того, какая у вас тема, одного из файлов может не быть. Не переживайте, значит так надо :) Например, у меня есть только файл comments.php, вот его-то я и правила.
Открываем указанные файлы и находим там следующие строчку:
<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>">
Она, конечно, у вас может немного отличаться, но главное, чтобы в name и id было именно author.
Отметьте для себя глазом, где находится эта строчка и дальше поищите еще одну строчку:
<input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>">
Она по идее должна идти почти сразу после первой строчки. В ней главное должны быть name и id с email.
Теперь самое важное. Поменяйте в первой строчке в обоих случаях (и в name и в id) “author” на “email”, а во второй строчке наоборот “email” на “author”.
Не забывайте, что редактировать файлы нужно в современном редакторе, например, в Notepad ++, иначе после обновления файлы могут вообще не работать.
В результате должно получиться следующее:
<input type="text" id="email" name="email" value="<?php echo $comment_author; ?>" />
и
<input type="text" name="author" id="author" value="<?php echo $comment_author_email; ?>" />
Зачем это делать объясню позже, сейчас нам нужно еще кое-что подредактировать.
Идем в главную директорию вашего блога и находим там файл wp-comments-post.php
Открываем его и находим строчки:
$comment_author = ( isset($_POST['author']) ) ? trim(strip_tags($_POST['author'])) : null;
$comment_author_email = ( isset($_POST['email']) ) ? trim($_POST['email']) : null;
Также меняем в нем author на email и наоборот. Вот что должно получиться в результате:
$comment_author = ( isset($_POST['email']) ) ? trim(strip_tags($_POST['email'])) : null;
$comment_author_email = ( isset($_POST['author']) ) ? trim($_POST['author']) : null;
Теперь дело сделано, обновите файлы на сервере и усё!
Объясняю чего мы такого натворили.
Спам-боты это роботы, в них заложена программа с простыми установками: писать имя автора в поле ‘author’, а электронный адрес в поле ‘email’. Мы с вами поменяли местами эти поля, вернее функционал каждого их этих полей. Для обычного пользователя все осталось по-прежнему, у него же есть глаза и он видит, что вот сюда надо ввести свое имя, а сюда email. Роботы же видят только код, а в соответствии с ним, сначала надо вводить email, а потом уже имя. Получается, что роботы вводят имя в поле email, но в вордпрессе стоит проверка на правильность электронного адреса. В итоге выходит, что введеная роботом информация просто-напросто не проходит валидацию.
Следовательно, с помощью вот такой простой уловки мы из обычной, встроенной в движок, проверки правильности электронного адреса, сделали этакую премодерацию комментариев. Зачем нужна лишняя тягомутина для ваших посетителей в виде капчи, когда долбает просто-таки всматриваться в эти цифры-буквы, когда тут и всматриваться никуда не надо, а просто, если ты человек, то сделаешь и без того все разумно, а не по программе.
Трекбек
Ссылка для трекбека:
http://florchik.ru/blog/advices/1309.html/trackback
Комментарии
Все гениальное просто! Спасибо.
Цитата