非插件实现屏蔽wordpress无中文的评论,有效避免垃圾评论

wordpress博客网站一直倍受侵扰,而且基本上都是英文和网址,真的是让人不胜其烦!每个站长都会为自己的网站搭配自己喜欢的拦截的方案。

如:,Some Chinese Please插件就可以拦截不带中文字的评论,用起来很不错,而且不写入数据库,可以有效地减少对服务器的额外负担,其实我们完全没有必要使用插件,直接使用代码就可以实现。

ps:过多的插件也会造成wordpress的运行缓慢。

将下面代码加到主题functions.php模板文件中,效果与使用插件相同。

/* 评论必须包含中文 拦截 */ 
function refused_spam_comments( $comment_data ) { 
$pattern = '/[一-龥]/u'; 
if(!preg_match($pattern,$comment_data['comment_content'])) { 
err('评论必须包含中文,谢绝英文。'); 
} 
return( $comment_data ); 
} 
add_filter('preprocess_comment','refused_spam_comments'); 

 

最终效果如下,如果评论中不包含中文就会有错误提示。

非插件实现屏蔽wordpress无中文的评论,有效避免垃圾评论 

其它一些使用过程会写入数据库的防spam插件不建议使用, 比如WordPress官方的防垃圾插件Akismet会在数据库中留下大量的信息,增加服务器负担,逍遥乐以前也在用,但是开启后会明显感觉到网站速度变慢,就放弃了使用。

还有就是那些使用技术手段,比如GET、POST等方式直接评论而不经过前台表单的垃圾评论我们就无能为力了,其它什么验证码、滑动解锁等等面对这些技术手段全部无用,只有屏蔽IP才能解决这个问题。

要屏蔽IP可以,在网站根目录下的.htaccess文件中添加:

1.Order Deny,Allow 
2.Deny from xxx.xxx.xxx.xx 
3.Deny from xxx.xxx.xxx.xx 

禁止某些IP访问,也可以达到屏蔽垃圾评论的目的。不过效果不明显,我们禁用的ip只能是常见的ip,一些陌生的,这个方法还是无能为力。