Как избавиться от спама в 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]
- Установка WordPress на хостинг - 11.05.2017
- Хостинг для WordPress - 26.04.2017
- 7 советов как ускорить WordPress - 18.01.2017
- WordPress плагины вывода популярных постов - 25.07.2016
- Готовим ваш сайт для мобильных устройств? - 29.06.2016
Как преодолеть технические сложности
|
Javascript + jQuery
|
Профессиональный сайт за один день.
|