WordPress屏蔽纯英文垃圾评论

最近WordPress中出现了很多的垃圾评论,开始也没注意一天也就一两个,知道这几天每天基本都是10封以上,所以得想办法对付一下SPAM了,不然WordPress的后台一堆垃圾屏蔽,Email中一堆垃圾邮件。

最近的垃圾评论主要是来自荷兰的IP,刚开始每天的垃圾评论的IP地址都是一个地址,于是我在WordPress的后台设置——讨论中,拉黑了这个IP地址,接下来清净了一两天,之后就是各种花式的IP地址来了,都是该死的荷兰佬的IP地址。

wordpress-spam

(点击放大)

不过比较容易的一点就是全部都是英文的评论,而我又想不想使用那种需要写入MySQL数据库的插件去屏蔽垃圾评论,而验证码之类的解决方案很不错,但是用户体验就会降低很多,于是决定屏蔽所有不包含中文的垃圾评论。虽然有插件也可以满足以上条件,不写入数据库屏蔽英文评论。但是还算是推荐使用代码的方式去完成。

仅仅需要在function.php中加入以下代码:

/* refused spam */ 

function refused_spam_comments( $comment_data )

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

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

{  wp_die('评论必须含中文!');  } 

return( $comment_data );  } 

add_filter('preprocess_comment','refused_spam_comments');

添加完毕保存即可,退出账号,随便测试一个纯英文的评论,WordPress已经可以屏蔽,世界应该清净了。

发表评论