В общем у меня на блоге стоит, 100% защита. Никаких каптч, единственный минус -
требуется правка ядра.
Соответственно при каждом апдейте WP всё по новой делать. Это единственный минус. А плюс - нормальным авторам не нужно мучать мозг капчей.
Оригинал, не помню где взял:
-------------------------
А делается это так. Нам потребуется изменить три файла. Два из них принадлежат вашему шаблону, а третий непосредственно Wordpress.
Берем файл comments.php из шаблона, и ишем там похожую строчку:
PHP:
<textarea id="comment" class="textarea" cols="61" rows="13" name="comment"></textarea>
И заменяем ее такой строкой:
PHP:
<div class="smo">
<textarea id="comment" class="textarea" cols="61" rows="13" name="comment"></textarea>
</div>
<textarea id="real-comment" class="textarea" cols="61" rows="13" name="real-comment"></textarea>
Теперь нужно изменить добавить строку в style.css вашего шаблона:
PHP:
.smo {position: absolute; left: -1000px;}
Тем самым, мы основное поле для комментария спрятали, сдвинув его на 1000 влево, за экран. Зато создали новое, точно такое же, но с другим именем. А так как скрипты спамеров ориентируются по стандартным именам полей, то и заполнять они будут то поле, которые у нас спрятано. Теперь нужно еще сделать так, чтобы если невидимое поле заполнено, коммент не принимался, и выдавалась ошибка. Для этого в wp-comments-post.php найдем следующие строчки:
PHP:
$comment_author = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url = trim($_POST['url']);
$comment_content = trim($_POST['comment']);
Заменим их на следующие:
PHP:
$spam_test_field = trim($_POST['comment']);
if(!empty($spam_test_field)) wp_die('Спаму нет!');
$comment_author = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url = trim($_POST['url']);
$comment_content = trim($_POST['real-comment']);
Отсюда вывод что если спамер заполняет невидимое поле, он получает ошибку. А обычный же пользователь видит все как обычно.
----
Естейственно, что эти real-comment, .smo - можно поменять на свои названия.
Я еще сделал по приколу сохранение этих спам комментов в отдельный файл
Можно потом эту базу будет продать
) В день набирается по 40-60 кб спама...
Будут вопросы - пишите в личку.