在实际情况中,我们网站的垃圾评论一般会有两个特点:一是大多数垃圾评论为外文,其二便是垃圾评论一般带有链接。那么针对这两个特点,把以下代码放在当前主题function.php文件中, 基本上可以过滤屏蔽掉99%的垃圾评论。
// WordPress禁止全英文,不包括汉字的评论 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'); // WordPress禁止日文评论 function BYMT_comment_jp_post( $incoming_comment ) { $jpattern ='/[ぁ-ん]+|[ァ-ヴ]+/u'; if(preg_match($jpattern, $incoming_comment['comment_content'])){ err( "评论中禁止发日文字符!" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'BYMT_comment_jp_post'); //Wordpress评论禁止发链接地址 function lianyue_comment_post( $incoming_comment ) { $http = '/[href="|rel="nofollow"|http:\/\/|<\/a>]/u'; if(preg_match($http, $incoming_comment['comment_content'])) { err( "评论中禁止发链接地址!" ); } return( $incoming_comment ); } add_filter('preprocess_comment', 'lianyue_comment_post');
亲测在dux主题中有效,其他主题的网站请自行测试~