欢迎光临
我们一直在努力

wordpress-跟垃圾评论说再见

【腾讯云】十周年感恩回馈,1核2G云服务器首年95元,4核云服务器额外赠送150GB高性能云数据盘,十年筑梦,伴你同行!

wordpress简称wp,是一款非常出色的博客文章类建站系统,国内有很多wp的使用者,不过,再好的程序也有不完美的地方,对于使用wp的站长来说,每天会碰到N多垃圾评论让人很是闹心。

对于这些垃圾评论内容,大多数人基本上选择安装各类验证码插件,验证码插件可以有效的阻止大部分的垃圾评论,但对用户体验不是太好,据说后来国内有位大牛(没百度到这位大牛的尊姓大名)总结发现这些垃圾评论基本上全是老外用各类发帖机器人搞出来,全是外文,很少有中文的,于是他搞出一个验证评论内容必须包含汉字的插件,此插件可以有效的阻止老外的这些垃圾评论。

此插件的原理非常简单就是正则去匹配评论内容中有没有含有中文字符,固有人整理出这么一段代码直接放在模板函数(function.php)中来有效阻止wp垃圾评论。

function rsync_spam_comments($comment_data) {  
	$pattern = '/[一-龥]/u';  
	if(!preg_match($pattern,$comment_data['comment_content'])) {  
		err('您的评论内容中必须包含汉字!'); 
	}
	return $comment_data; 
}  
add_filter('preprocess_comment','rsync_spam_comments');

上面这段代码主要是匹配评语内容中是否包含中文字符,如果没有,则返回,语法非常的简单,固很多人在此基础上对上面的代码进行了各种扩展,经我总结整理出以下代码:

function rsync_spam_comments($comment_data) {  
	$pattern = '/[一-龥]/u';  
	if(!preg_match($pattern,$comment_data['comment_content'])) {  
		err('您的评论内容中必须包含汉字!'); 
	}
	$pattern = '/[あ-んア-ン]/u';
	if(preg_match($pattern,$comment_data['comment_content'])) {
		err( "您的评论内容中禁止包含日文!" );
	}
	$pattern = '/[href="|rel="nofollow"|http:\/\/|<\/a>]/u';
	if(preg_match($pattern,$comment_data['comment_content'])) { 
		err( "您的评论内容中禁止url链接!" ); 
	}
	return $comment_data; 
}  
add_filter('preprocess_comment','rsync_spam_comments');

把以上代码放在模板函数(function.php)的结尾处,此代码除了验证评论中是否包含中文字符,还会验证是否包含日文,如果包含日文则直接返回,并且还会验证评论中是否包含a标签如果包含也直接返回。

赞(0) 打赏
原创文章转载请注明出处:爱编程 » wordpress-跟垃圾评论说再见
分享到: 更多
【腾讯云】星星海SA2云服务器,1核2G首年99元起,高性价比首选

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

爱编程、一个运维兼程序员的博客!

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏