Регистрация Войти
Вход на сайт

Избавляемся от спама в комментариях Worpress

Избавляемся от спама в комментариях Worpress

Спам в комментариях – это неприятное явление, с которым сталкивается каждый кто ведет свой блог или сайт. Как избавиться от спама, если вы используете 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]


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

статья взята отсюда автор cashaman
Категория: Скрипты
Актуальные версии, стоимость и возможности сервисов и программ уточняйте на сайтах их авторов.
comments powered by Disqus
» » Избавляемся от спама в комментариях Worpress