阻止WordPress垃圾评论和广告评论的三种方法

  • A+
所属分类:未分类
摘要

每次登录wordpress看到评价,又喜又气,喜的是评论多了网站人气也高了,气的时候总是有wordpress垃圾评论和广告评论。

之前写过一篇防御攻击和暴力扫描的文章,技巧九中有提到禁止垃圾评论的方法,这个方法可以禁止掉所有的机器人,但没法禁止人工发表的垃圾评论。

垃圾评论对网站没什么好处,搜索引擎非常注重评论,它回评判你的文章是否受读者欢迎,真实有效的互动评论多了,对文章的权重和收录都有好处。

很多人感觉评论可以做站外锚链接,其实这种链接的作用微乎其微了,百度对其看的很清淡了,还有论坛签名锚链接,都几乎没人做了,但是人工的广告评论还是蛮多的。

这些垃圾评论会占用博客数据库,备份出来的数据库要大很多,严重影响访问者的体验。垃圾评论对博客站没有任何好处,所以必须想办法禁止它,下边整理了一些有效方法供博主选择。

一、评论功能设置

如果你的某页面权重排名很高,就有可能会有软件来自动留言,还有一些非软件的访问用户来评论打广告。进入博客后台→设置→讨论,设置评论功能。

1、禁止评论

对于一些特殊的文章,可以禁止评论,保留大多数文章评论功能即可,因为评论可以增加收录内容和权重。进入文章列表,点击快速编辑,勾掉允许评论,这样任何人都无法评论此文章了。

wordpress禁止评论

2、评论设置

也可以设置评论的门槛,勾选评论者必须填写姓名和电子邮件,对于“用户必须注册并登录才可以发表评论”这个太功能太强大,完全可以闭屏掉所有的软件评论,但这样对于访问用户不太友好,注册评论毕竟太过繁琐,影响用户体验,所以这个功能不建议开启。

wordpress评论设置

过滤关键词

对于人工广告和恶意评论需要设置关键词,这些人工发的垃圾评论处理起来比较麻烦,可以在审核和黑名单中设置关键词过滤。

添加设置评论审核过滤词:

Q

q

法轮功

添加评论黑名单关键词:

seo

法轮功

性爱

做爱

激情

直播

二、安装插件设置

Akismet:wordpress自带的插件Akismet,Akismet是一款智能的评论过滤插件,90%以上的垃圾评论都会被它阻止在外。一些评论被你标注为垃圾评论后,Akismet会记忆并在下次直接判断为垃圾评论。就算你是人工评论,依然会进入垃圾评论中或审核评论中。

安装wordpress后,Akismet是自带的,开启此插件后进入官网http://akismet.com/wordpress/,在插件栏Akismet配置里输入

密钥可以通用,不喜欢申请的话,可以采用对民网使用的密钥:9e30fb0d3206

了解了Akismet的功能,那么自己在评论文章的时候要特别注意,一定要按照文章的中心思想去合理的评论。博客评论虽然可以提高外链和流量,但有的时候短时间内评论多过,重复提交相同的内容,Akismet就会判断为垃圾评论。

Fancy Captcha,验证码软件,对于评论非常不友好,浪费评论者时间,现在几乎没人用验证码

myQaptcha,对民网使用的这个插件,把插件功能集成到了主题当中,只需要滑动解锁。

wordpress评论滑轮解锁

三、代码两个小墙

使用Cookies for Comments插件,可以只能判断是否为自动评论,或者使用下边代码,基本可以100%屏蔽掉机器人发出的 spam,人工自然提交的评论表中增加一个hidden 变量,如果后台检测不到这个变量,则认定为 spam,可以选择需要审核,也可以直接过滤掉。直接把以下代码粘贴到 function.php中。

// 垃圾评论拦截

class anti_spam {

function anti_spam() {

if ( !current_user_can('level_0') ) {

add_action('template_redirect', array($this, 'w_tb'), 1);

add_action('init', array($this, 'gate'), 1);

add_action('preprocess_comment', array($this, 'sink'), 1);

}

}

function w_tb() {

if ( is_singular() ) {

ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#",

"textarea$1name=$2w$3$4/textarea><textarea name=\"comment\" cols=\"100%\" rows=\"4\" style=\"display:none\"></textarea>",$input);') );

}

}

function gate() {

if ( !empty($_POST['w']) && empty($_POST['comment']) ) {

$_POST['comment'] = $_POST['w'];

else {

$request = $_SERVER['REQUEST_URI'];

$referer = isset($_SERVER['HTTP_REFERER'])         ? $_SERVER['HTTP_REFERER']         : '隐瞒';

$IP      = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透过D理)' : $_SERVER["REMOTE_ADDR"];

$way     = isset($_POST['w'])                      ? '手动操作'                       : '未经评论表格';

$spamcom = isset($_POST['comment'])                ? $_POST['comment']                : null;

$_POST['spam_confirmed'] = "请求: ". $request. "\n来路: ". $referer. "\nIP: ". $IP. "\n方式: ". $way. "\n內容: ". $spamcom. "\n -- 记录成功 --";

}

}

function sink( $comment ) {

if ( !empty($_POST['spam_confirmed']) ) {

if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment;

//方法一: 直接挡掉, 將 die(); 前面两斜线刪除即可.

die();

//方法二: 标记为 spam, 留在资料库检查是否误判.

//add_filter('pre_comment_approved', create_function('', 'return "spam";'));

//$comment['comment_content'] = "[ 判断这是 Spam! ]\n". $_POST['spam_confirmed'];

}

return $comment;

}

}

$anti_spam = new anti_spam();

下边代码可以禁止英文和日文的评论。

// 禁止英文评论

function scp_comment_post( $incoming_comment ) {

$pattern = '/[一-龥]/u';

if(!preg_match($pattern, $incoming_comment['comment_content'])) {

wp_die( "You should type some Chinese word (like \"你好\") in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!" );

}

return( $incoming_comment );

}

add_filter('preprocess_comment', 'scp_comment_post');

// 禁止日文评论

function BYMT_comment_jp_post( $incoming_comment ) {

$jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u';

if(preg_match($jpattern, $incoming_comment['comment_content'])){

wp_die( "禁止有日文字符的评论 You should type some Chinese word" );

}

return( $incoming_comment );

}

add_filter('preprocess_comment', 'BYMT_comment_jp_post');

PS:这几种阻止垃圾评论的方法非常实用,智能化阻止掉垃圾评论也不是万能的,因为有一些人为的垃圾评论还是防不住的,所有的方法只能降低垃圾评论的数量而已。

对民网使用了前三种方法,基本防住了99.99%的垃圾评论,只有一些人工广告无法阻止!

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: