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

Данную идею подбросил мне Денис в комментариях к этому посту.

А дальше пришлось пораскинуть мозгами, поискать варианты решения и вот на выходе пошаговое руководство для тех, кто устал от говнокоментарием. Итак...

Открываем comments.php шаблона и ищем там строчку:

<textarea name="comment" id="comment" cols="100%" rows="10" class="textarea"></textarea>

ну или что-то похожее.
Заменяем её на следующий код:

<div class="zaebli"><textarea name="comment" id="comment" cols="100%" rows="10" class="textarea"></textarea></div>
<textarea name="newcomm" id="newcomm" cols="100%" rows="10" class="textarea"></textarea>

Затем открываем файл style.css шаблона и втыкаем туда строчку:

.zaebli {position: absolute; left: -1000px;}

Что мы только что сделали? Создали новое текстовое поле для комментарием с оригинальным name="newcomm", а старое поле заключили в див и выкинули за пределы экрана на 1000px.

Теперь пользователи ручками будут вводить комменты в новое поле, а спам боты будут цепляться как и раньше к старому полю и писать туда говнокоменты, ну а нам остается только переключить публикацию со старого поля на новое. Для этого откроем фаил -comments-post.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']);

и заменим их на:

$spam_field = trim($_POST['comment']);
if(!empty($spam_field)) wp_die('Иди тoвapищ, нa xyй!');
$comment_author = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url = trim($_POST['url']);
$comment_content = trim($_POST['newcomm']);

Для безопасности теперь необходимо поменять мои имена и классы на свои и всё. 99% спама будет отфильтровано.

А 1% приходится на "обезъянок", такой спам фильруется только вручную.

Удачного вам избавления от СПАМА.


Кстати, в нашем полку прибыло, знакомтесь - Блог серого оптимизатора...

Для автолюбителей -renault symbol new.

Тем кто желает увеличить количество "лошадок" под капотом, просто необходимо купить турбокомпрессор для своей тачки.

Метки:, , ,

Связанные записи