Как избавиться от спама в WordPress раз и навсегда

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

Итак, первое что я сделал – это удалил все плагины с Capcha, блокированием по черным спискам и прочую неработающую фигню. Они нам больше никогда не понадобятся, а если и понадобятся – это только при регистрации.

В 99% случаев спамеры отправляют url своих ресурсов. От этого то и будем отталкиваться. В одной из предыдущих заметок я уже рассказывал, что убрал из формы отправки комментария параметр “Сайт”. Так вот, спамеры все равно отправляют этот параметр заполненным в своем POST запросе. Этим то мы и воспользуемся. Если есть параметр ‘url’ – шлем спамера “подальше”. Также я заметил, что спамеры в качестве текста комментария используют заголовок темы, потому если коммент будет совпадать с заголовком – шлем спамера “еще дальше”.

И теперь самое главное – добавим в форму комментария свое поле, которое обязательно для заполнения. К примеру я использовал простое текстовое поле с просьбой ввести от пользователя url своего блога.

Открываем файл wp-includes/comment-template.php и ищем в нем функцию comment_form. В ней находим блок

 $fields =  array(
                'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
                            '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
                'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
                            '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',

В этот массив добавляем наше поле АнтиСпам.  В конечном счете оно выглядит так:

       $fields =  array(
                'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
                            '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
                'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
                            '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
                'spam'  => '<p class="comment-form-spam"><label for="spam">' . __( 'Antispam: please enter voip-lab.ru' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
                            '<input id="spam" name="spam" type="text" value="' . esc_attr(  $commenter['comment_author_spam'] ) . '" size="30"' . $aria_req . ' /></p>');

Далее нам будет необходимо обработать новое поле spam. Для этого открываем файл wp-comments-post.php в корне движка WordPress и находим блок

} else {
        if ( get_option('comment_registration') || 'private' == $status )
                wp_die( __('Sorry, you must be logged in to post a comment.') );
}

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

if ( !is_user_logged_in() ) {
    if($comment_spam!='voip-lab.ru') wp_die( __('If you are not spamer go back and set text field Antispam to voip-lab.ru.') );
    if($comment_author_url!='') wp_die( __('You are fucking spamer.') );
    if($comment_content == get_the_title($post)) wp_die( __('You are fucking spamer.') );
}

Далее необходимо отключить trackback, т.к. очень много спама валится через него. Долго искать решение не пришлось. В корне сайта просто удаляем или переименовываем файл wp-trackback.php.

На этом настройка своей АнтиСпам системы закончена. Приведу немного статистики – когда я использовал капчи и другие плагины, я удалял порядка 300-400 спам сообщений в день. В моем решении мне не пришло ни одного сообщения от спамеров. Скажем им “гуд бай” =)

30 комментариев к “Как избавиться от спама в WordPress раз и навсегда

  1. The following time I review a blog, I wish that it doesn’t dissatisfy me as high as this one. I imply, I know it was my option to check out, yet I really thought youd have something interesting to state. All I listen to is a number of grumbling concerning something that you can deal with if you werent too hectic seeking focus.

  2. There are absolutely a great deal of details like that to consider. That is a terrific point to bring up. I use the thoughts above as basic motivation but clearly there are questions like the one you bring up where the most vital point will certainly be operating in straightforward good faith. I don?t understand if finest methods have arised around things like that, however I make sure that your job is clearly identified as a fair game. Both children and girls really feel the effect of just a moment?s satisfaction, for the rest of their lives.

  3. This is the right blog site for any individual that wants to find out about this subject. You realize so much its almost hard to suggest with you (not that I really would want?HaHa). You definitely put a new spin on a topic thats been covered for several years. Fantastic stuff, simply excellent!

  4. Youre so trendy! I do not intend Ive check out anything like this prior to. So wonderful to find someone with some initial thoughts on this subject. realy thanks for starting this up. this internet site is something that is needed online, somebody with a little creativity. beneficial task for bringing something new to the net!

  5. Can I just claim what an alleviation to locate somebody that actually understands what theyre discussing on the internet. You most definitely understand how to bring a problem to light as well as make it important. Even more people need to read this and comprehend this side of the tale. I cant think youre not more popular due to the fact that you definitely have the gift.

  6. Aw, this was a truly wonderful article. In idea I would love to put in composing similar to this furthermore? requiring time and real initiative to make a very good write-up? but what can I say? I procrastinate alot and by no means appear to obtain something done.

  7. When I initially commented I clicked the -Notify me when brand-new comments are included- checkbox and now each time a remark is included I get 4 emails with the same comment. Is there any way you can eliminate me from that solution? Thanks!

Оставить ответ

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