微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

免插件多方位屏蔽WordPress垃圾评论

网站用心做了一段时间,浏览量慢慢的上去了,随之而来的就是删不完的垃圾评论,天天看到这些真是让人心烦,总想骂人。冷静下来想想还是想办法解决问题吧,于是找了度娘,发现了一篇文章感觉方法很全面,所以自己也就先试用了一下,发现确实有效,下面分享给大家,有需要的赶紧拿走用吧。

禁止非法词汇评论提交到数据库方法

1、将以下代码放到当前主题的functions.PHP文件最后一个?>的前面:

//屏蔽关键词,email,url,ip

function Shield_fuckspam($comment) {

if (wp_blacklist_check($comment['comment_author'],$comment['comment_author_email'],$comment['comment_author_url'],$comment['comment_content'],$comment['comment_author_IP'],$comment['comment_agent'])) {

header("Content-type: text/html; charset=utf-8");

err(__('不好意思,您的评论违反龙砚庭博客评论规则'));

} else {

return $comment;

}

}

add_filter('preprocess_comment','Shield_fuckspam');

2、在wordpress后台“设置” > “讨论” > 评论黑名单中添加相应的垃圾评论关键词即可。如在黑名单中添加“信用卡”,那么当评论内容评论名称、URL、电子邮件或IP地址中包含其中任何关键字(如信用卡)时,系统将会禁止提交到数据库

其他防wordpress垃圾评论代码

接下来再分享几段实用的小代码,配合使用也是能够起到拦截垃圾评论的作用,以下代码同样扔到函数文件即可(如functions.PHP 我多实在的人啊,每次都要提醒是哪个常用的函数文件):

1、过滤外文(如纯英文或日文)评论

//屏蔽纯英文评论和纯日文

function refused_english_comments($incoming_comment) {

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

// 禁止全英文评论

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

wp_die( "您的评论中必须包含汉字!" );

}

$pattern = '/[あ-んア-ン]/u';

// 禁止日文评论

if(preg_match($pattern,$incoming_comment['comment_content'])) {

wp_die( "评论禁止包含日文!" );

}

return( $incoming_comment );

}

add_filter('preprocess_comment','refused_english_comments');

2、屏蔽长连接评论

function lang_url_spamcheck($approved,$commentdata) {

return (strlen($commentdata['comment_author_url']) > 50) ?

'spam' : $approved;

}

add_filter('pre_comment_approved','lang_url_spamcheck',99,2);

3、屏蔽昵称,评论内容链接评论

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');

Ps:以上三段代码,最后两条选其一就行了,部分功能重复了,因为屏蔽长链接自然也屏蔽评论内容链接评论

4、限制评论最少字数和最多字数

function limit_comment_length( $commentdata ) {

$minCommentlength = 5; //最少字数限制

$maxCommentlength = 200; //最多字数限制

$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' );

结合禁止非法词汇评论提交到数据库代码和过滤外文(如纯英文或日文)评论代码,一般情况下垃圾评论就基本没有了。当然,我们还需要持续不断地给评论黑名单中添加内容,这样防御力度才会更加强悍。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐