吵吵   2012-04-25  阅读:3,400

这段时间吵吵每天会习惯性的登陆博客,不是为了更新文章,也不是为了查看流量,而是为了删除那些可恶的英文垃圾评论。少则30条,多则一百来条的垃圾评论确实会让我点击鼠标到手软,而且大有排山倒海,一浪高过一浪之势。如果任其发展下去,我想,我的博客很快就会被这些英文评论给刷爆了。

一开始,吵吵就写过多篇有关防治垃圾评论的文章,但是都是好了一段时间后又泛滥了。先是用过隐藏input域,后来用了js生成的隐藏input,再最后更改js生成input的值,使其与时间加密发送,结果却都是失败了。写过的文章有:

使用js来过滤wp的垃圾评论

再战wp的评论机器人

反对垃圾评论为wp加上评论验证

我们找到这些评论,发现有以下这些特征:
1、评论都是英文的,而且很多带有连接,或者邮件之类的。最恶心的就是i have said 234024820 times什么什么的。你说那么多次干嘛… …

2、来源网站不确定,很多来源网站我返回去访问后发现是一些正常的网站,而且没有看到有我网站的连接。那么只有一种可能是虚构的了。

3、都没有留下邮箱。我的博客已经开启了必须留下邮箱才能发表评论的功能,但是所有垃圾评论并未留下邮箱,它是如何发送成功的呢?

先看看我以前是怎么做的,在input下面添加隐藏域,然后在评论post的入口页面wp-comments-post.php页面对传递过来的值进行验证,如果不对的话就不通过了。

鉴于以前的没有效果,我考虑过滤一下英文评论,在wp-comments-post.php中验证如果评论全部是英文的话就不通过,代码如下:

//必须包含中文字
$pattern = '/[一-龥]/u';

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

原来以为这已经是终极杀手锏了,英文评论不会再有了,当我改完后一刷新,才惊讶的发现又有两条英文垃圾评论来了,怎么会这样子的?原因在于我们忽略了wp-comments-post.php不一定就是评论发表的唯一入口,评论机器人构造了数据后利用ajax入口,或者其它入口进行发送了。但是不管他从哪里入口,wp的钩子的作用应该一直存在,所以我们在主题模板的functions.php下面再加入以下代码,对纯英文评论进行过滤:

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');

至此,纯英文评论已经通不过了。以前听说seo在国外算是个很好的行业,但是到中国就做烂了。从这里来看,其实国外的seo更牛逼了,至少技术上比国内的强悍多了。

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

8条回应:“解决wp近来英文垃圾评论泛滥的问题”

  1. 博客控说道:

    是不是wp比较多?zblog没有

    • 吵吵说道:

      这个就不知道了。wp是老外搞得,zbloh是国人搞得,应该没有。

  2. 阿辉博客说道:

    使用AK插件就可以了。

  3. 和田玉枣说道:

    中文也一样,中国人最喜欢搞这个

  4. 乔莎官网说道:

    p是老外搞得,zbloh是国人搞得

  5. 标语大全说道:

    处理垃圾评论花费时间跟精力

  6. 大学便民网说道:

    评论删的手都酸了 真想把评论关了

  7. 破折君博客说道:

    英文垃圾评论是很恶心~~

发表评论

电子邮件地址不会被公开。 必填项已用*标注