首页 » 未分类 » 正文

WordPress教程:完美过滤垃圾评论

文章转载自: https://www.xhsay.com/spam-filter.html

使用WordPress建站的朋友应该都会遇到一个问题,那就是大量的垃圾评论。不管你是新站还是老站都一样,今天君子不器就为大家推荐几种对付这些垃圾评论的方法。当然了,若是你已经使用了评论插件之类的东西,那么就不必要看此文了,因为本文是针对WordPress默认评论,只适合那些想通过纯代码的方式解决WordPress垃圾评论的站长朋友。

方案一:禁止评论中出现超链接

在WordPress中,很多垃圾评论甚至不需要去自习看内容,只需要瞄一眼就能确定是垃圾评论,因为这些评论一般都带有大量的超链接或者全是英文日文等。因此我们就可以根据这些评论的特点通过代码实现禁止其发表。

function lianyue_comment_post( $incoming_comment ) {

$http = '/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u';

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

wp_die( "发贴机 哥 屋 恩!" );

}

return( $incoming_comment );

}

add_filter('preprocess_comment', 'lianyue_comment_post');

方案二:通过评论中必须包含中文的方式禁止全英文评论

在使用WordPress的过程中,若是你开启了网站的注册功能,那么你就会发现你网站要不了多久就会多出一堆全英文的用户名,这些都是一些国外的广告机器人注册用来发广告的,因此我们很有必要禁止掉这些全英文的评论。

function ruikeedu_com_comment_post( $incoming_comment ) {

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

// 禁止全英文评论

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

wp_die( "您的评论中必须包含汉字,否则将被视为发贴机!" );

}

return( $incoming_comment );

}

add_filter('preprocess_comment', 'ruikeedu_com_comment_post');

方案三:评论中必须包含中文且不得出现如超链接之类的指定字符

若是你想要同时使用两种方式又觉得贴两份代码麻烦的话,那么请直接复制下面二合一代码。使用了下面的代码后就不要再使用方案一和方案二了。

//评论中必须包含中文且不得出现如超链接之类的指定字符

function ruikeedu_com_comment_post( $incoming_comment ) {

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

$http = '/[<|=|.|友|夜|KTV|ッ|の|ン|優|業|グ|貿|]/u';

// 禁止全英文评论

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

wp_die( "写点汉字吧,博主外语很捉急!You should type some Chinese word!" );

}elseif(preg_match($http, $incoming_comment['comment_content'])) {

wp_die( "不好意思,您的评论违反本站评论规则!" );

}

return( $incoming_comment );

}

add_filter('preprocess_comment', 'ruikeedu_com_comment_post');

方案四:屏蔽评论中的指定关键词,如:Email、Url、Ip等

//屏蔽评论中的指定关键词,如:email、url、ip等

function ruikeedu_com_fuckyou($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', 'ruikeedu_com_fuckyou');

方案五:屏蔽长连接评论

function ruikeedu_com_fuckyou_spamcheck($approved, $commentdata) {

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

'spam' : $approved;

}

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

方案六:屏蔽昵称,评论内容带链接的评论

function ruikeedu_com_fuckyou_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', 'ruikeedu_com_fuckyou_link');
赞 (0)

发表评论