学习

WordPress垃圾评论屏蔽方法

2020年5月21日

WordPress是全球最好用的建站系统相信这点大家都认同,使用PHP+Mysql的开源程序,简单易用,从商业门户到新闻频道,企业网站,个人博客等都可以使用WordPress来搭建,丰富的插件和主题,让WordPress能适应任何类型的网站。

但是用过WordPress的朋友都知道,WordPress建站方便,但是垃圾评论是太多了。那些为了做SEO的朋友,会针对WordPress开发大量的评论软件,自动评论。以达到提升外部链接的方法。

就像我们国内会针discuz论坛一样。同样,我们国内做外贸的公司也会用一些WordPress的外链工具。

这个博客已经搭建一年多了,从搜索引擎来的流量没多少,但是垃圾评论是真的多。几乎每天能有几十条的垃圾评论。每天都要登录后台清理一下,否则,时间一长,垃圾评论都能看到你眼花。

网上有很多可以处理WordPress垃圾评论的方法,不是设置麻烦,就是设置好了之后,导致真正想留言的朋友受限制。

在前几天我针对博客做了一些设置,今天4天的测试,一条垃圾评论也没有了,今天给大家分享一下方法。

次方法不会限制真正的访客自由评论,不会要求留言的用户必须注册,也不用关闭页面的评论,不用设置黑名单,不能设置评论的规则等。只需贴几个代码就可以了。

在WordPress主题的functions.php中,贴上下面几个代码即可。

第一条,屏蔽过短或者多长的评论(可以自由限制最长、最短的字数)

//屏蔽内容果断或者过长的评论
function limit_comment_length( $commentdata ) {
$minCommentlength = 5; //最少字数限制
$maxCommentlength = 150; //最多字数限制
$pointCommentlength = mb_strlen($commentdata['comment_content'],'UTF8'); //mb_strlen 1个中文字符当作1个长度
if ( $pointCommentlength < $minCommentlength )
{
header("Content-type: text/html; charset=utf-8");
wp_die('抱歉,您的评论太短了,请至少输入' . $minCommentlength .'个字(已输入'. $pointCommentlength .'个字)');
exit;
}
if ( $pointCommentlength > $maxCommentlength )
{
header("Content-type: text/html; charset=utf-8");
wp_die('抱歉,您的评论太长了,请少于' . $maxCommentlength .'个字(已输入'. $pointCommentlength .'个字)');
exit;
}
return $commentdata;
}
add_filter( 'preprocess_comment', 'limit_comment_length' );

第二段代码:屏蔽代码链接的评论

function Shield_link($comment_data) {
 $links = '/http:\/\/|https:\/\/|www\./u';
 if (preg_match($links, $comment_data['comment_author']) || preg_match($links, $comment_data['comment_content'])) {
 err(__('对不起,请不要发网址链接!!'));
 }
 return ($comment_data);
}
 add_filter('preprocess_comment', 'Shield_link');

第三段代码:屏蔽纯英文或者日文的评论

function refused_spam_comments($comment_data) {
 $pattern = '/[一-龥]/u';
 $jpattern = '/[ぁ-ん]+|[ァ-ヴ]+/u';
 if (!preg_match($pattern, $comment_data['comment_content'])) {
 err(__('来一波汉字吧,苦逼的站长只认识汉字!You should type some Chinese word!'));
 }
 if (preg_match($jpattern, $comment_data['comment_content'])) {
 err(__('关于日语,站长勉强听懂雅蠛蝶 Japanese Get out!日本语出て行け! You should type some Chinese word!'));
 }
 return ($comment_data);
}
 add_filter('preprocess_comment', 'refused_spam_comments');

把以上的三段代码添加好之后,你的网站垃圾评论应该会大大降低,而且还不影响正常的访客评论。

如果你用的模板经常更新的花,在更新之前一定要备份次三段代码即可。不用插件,不占用数据库。