首先想说的是,本博客可以不用登陆即可评论;但是因为这样,招致了一个麻烦,最近本博每天被大量英文垃圾评论,虽然被Akismet Anti-Spam插件 拦截,但是看着回收站的垃圾评论数字,也是让人很膈应,所以今天动手收拾收拾这个问题。
按照本文设置后,将能屏蔽特定关键词、URL、emAIl、评论者名称中只要有关键词就会被屏蔽。
WordPress屏蔽垃圾评论改造步骤:
首先到后台设置——讨论中找到评论黑名单,在里面添加将要屏蔽的关键词,一行一个。
再去主题目录下找到function.php,DUX是function_theme.php文件,向里面添加如下代码:
/* 评论验证 */
function refused_spam_comments( $comment_data ) {
if( is_user_logged_in()){ return $comment_data;} //登录用户不验证
$pattern = '/[一-龥]/u'; //验证是否存在中文
if(!preg_match($pattern,$comment_data['comment_content'])) {
err('评论必须含中文!');
}
if( wp_blacklist_check($comment_data['comment_author'],$comment_data['comment_author_email'],$comment_data['comment_author_url'], $comment_data['comment_content'], $comment_data['comment_author_IP'], $comment_data['comment_agent'] )){
// header("Content-type: text/html; charset=utf-8");
err('你填写的某项信息或IP地址已被列入黑名单,无法进行评论,请文明评论!');
} else {
return $comment_data;
}
}
add_filter('preprocess_comment','refused_spam_comments');
这段代码要求必须满足评论含有中文,且不能含有评论黑名单里的关键词才能正常评论。