Как избавиться от спама в Worpress?

Хаки wordpress для эффективного избавления от спама.

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

Как автоматически помечать как спам — комментарии с длинным URL.

Вы наверняка видели, что практически у всех спам-комментариев очень длинный URL адрес. Поэтому чтоб отловить такие комментарии, которые обошли наш плагин Akismet, атоматически пометим их меткой (mark) как спам. Устанавливаем длину таких коментов в 50 символов, вы можете определить ее на свое усмотрение, установив в коде свое значение. Чтобы использовать это правило, просто вставьте приведенный ниже код в файл functions.php. Он пометит как спам любой комментарий с URL больше чем 50 символов.

<?php   function rkv_url_spamcheck( $approved , $commentdata ) {
    return ( strlen( $commentdata['comment_author_url'] ) > 50 ) ? 'spam' : $approved;   }
 add_filter( 'pre_comment_approved', 'rkv_url_spamcheck', 99, 2 ); ?></pre>

Удаляем поле URL из формы для комментариев.

Отличным способом борьбы со спамом является удаление поля URL в форме комментариев. После этого никто не сможет оставить ссылку на свой сайт, с комментарием типа: «Прикольно», «Класс», «Суппер» и т. д . и т. п. Вставляем этот код так же в файл вашей текущей темы functions.php.

function remove_comment_fields($fields) {
    unset($fields['url']);
    return $fields;
}
add_filter('comment_form_default_fields','remove_comment_fields');

Объединяем два предыдущих кода в один.

function remove_comment_fields($fields) {
    unset($fields['url']);
    return $fields;
}
add_filter('comment_form_default_fields','remove_comment_fields');

<?php   function rkv_url_spamcheck( $approved , $commentdata ) {     return ( strlen( $commentdata['comment_author_url'] ) --> 1 ) ? 'spam' : $approved;
  }

  add_filter( 'pre_comment_approved', 'rkv_url_spamcheck', 99, 2 );

?>

Убираем активную ссылку из текста комментария.

Убрав поле URL из формы, вы не застрахованы от того, что некоторые продвинутые пользователи вставят активную ссылку в поле текста комментария. Чтоб запретить это действие вставьте в файл functions.php следующий код:

remove_filter('comment_text', 'make_clickable', 9);

Делаем все внешние ссылки комментария “Nofollow”.

Если же вы хотите разрешить вставлять ссылки в комментарии, в связи с какой-то необходимостью. Тогда можно автоматом добавить ко всем ссылкам атрибут rel = “Nofollow” и предупредить об этом ваших комментаторов. Добавьте это код в ваш файл:

add_filter('comment_text', 'auto_nofollow');

function auto_nofollow($content) {
    //return stripslashes(wp_rel_nofollow($content));

    return preg_replace_callback('/<a>]+/', 'auto_nofollow_callback', $content);
}

function auto_nofollow_callback($matches) {
    $link = $matches[0];
    $site_link = get_bloginfo('url');

    if (strpos($link, 'rel') === false) {
        $link = preg_replace("%(href=S(?!$site_link))%i", 'rel="nofollow" $1', $link);
    } elseif (preg_match("%href=S(?!$site_link)%i", $link)) {
        $link = preg_replace('/rel=S(?!nofollow)S*/i', 'rel="nofollow"', $link);
    }
    return $link;
}

Как избавиться от спама на основе списка слов.

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

Запрещаем комментарии по (non-referrer) запросам.

Это очень полезная функция, которая запретит спам-ботам оставлять комментарии на вашем сайте или блоге, которые пишутся не с вашего домена. В строке 5 необходимо прописать ваш домен, затем скопировать код и вставить его в ваш файл .Htaccess, который находится в корне вашего сайта.

# block comment spam by denying access to no-referrer requests
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*вашдомен.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule ^(.*)$ ^http://the-site-where-you-want-to-send-spammers.com/$ [R=301,L]

Внимание!!! Всегда делайте резервную копию перед редактированием любых файлов!

Автор - Александр

Меня зовут Александр.
Я Вебмастер и SEO — специалист по созданию и продвижению сайтов на WordPress.
В профессиональном интернет-маркетинге c 2007 года. Основные направления: создание и продвижение web-проектов в российском сегменте интернет. Специализация: создание сайтов и их комплексное продвижение, внутренняя оптимизация, внешняя оптимизация, трафиковое продвижение, контентное продвижение...

Связаться со мной >>
Посмотреть все публикации

    Ваше имя (обязательно)

    Ваш e-mail (обязательно)

    Сообщение (обязательно)

    "Поставьте галочку, если вы не робот"

    и решите пример ответ буквами

    Добавить комментарий

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