屏蔽无中文的评论,有效避免垃圾评论

2022-08-01 15:36:12 浏览数 (1)

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

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

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

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

代码语言:javascript复制
/* 评论必须包含中文 拦截spam */ 
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'); 

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

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

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

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

代码语言:javascript复制
1.Order Deny,Allow 
2.Deny from xxx.xxx.xxx.xx 

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

0 人点赞