怎样解决wordpress中英文垃圾评论?

核心提示:WordPress现在的使用是越来越广泛,wordpress国外开发的一款非常流行的cms程序,wordpress也是国外SEO们使用最多的程序。同时与之而来的是相关SEO工具的开发也越来越多,技术也越来越高。 记得曾经使用过的一个英文版的评论工...

WordPress现在的使用是越来越广泛,wordpress国外开发的一款非常流行的cms程序,wordpress也是国外SEO们使用最多的程序。同时与之而来的是相关SEO工具的开发也越来越多,技术也越来越高。

记得曾经使用过的一个英文版的评论工具可以快速找到N多的wordpress博客,同时还可以区分哪些是需要验证码、哪些是不需要验证码、哪些是评 论需要审核、哪些是不需要审核、哪些是评论有跳转、哪些是没有做跳转...等一系列的选项,工具做得很精细,同时还有代理登陆等模拟人工访问等功能,虽然 这些做得很好,但是制造的产物对于俺们这些博主而言特别是中文博主而言,简直就是万恶之源。

喜欢倒腾博客的童鞋们都知道,虽然评论能给博客带来活力,同时也是一个交流的平台,但是垃圾评论泛滥也不是件好事情,不仅浪费空间资源,同时会降低 网页的内容质量对用户体验产生不良影响;而对于很多人一提到处理垃圾评论都会想到使用类似Akismet这样的垃圾评论过滤插件,我的破折君博客刚开始也 是按照这个思路来做的,主要用到了下面三个常用的方法:

1、Wordpress自带的Akismet,默认禁用。启用后要到其网站上注册一下,拿到一个api key才能用。该api key对于个人用户是免费的。

2、Spam Free WordPress。文章里推荐的是另一个,不过看到这个评分比较高,所以装这个了。

3、Math Comment Spam Protection。加了个验证码,让做一道数学题。

但是这三个插件虽然能阻挡一些垃圾评论,但是很多时候都是放在垃圾评论里面,但是也还是要手工删除。刚开始觉得没什么,但是随着破折君博客的流量的 增加,垃圾评论越来越多,不止中文的还有很多的纯英文垃圾评论,有时候一天甚至达到四五百条,删都删的累了,所以就想通过禁止纯英文评论来解决这个问题。

评论工具不同于手工填表单的方式进行评论而往往是利用ajax入口或者wp-comments-post.php或者其它入口进行发送。但是不管他 从哪里入口,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');

通过这个方法可以让纯英文内容不能评论,这比把纯英文评论标记为垃圾评论更好一些,省去了再去删垃圾评论的时间。

在线客服