开始我还想找自动删除垃圾评论的方法,因为批量删除即便不慢,但点一点还是浪费了时间,没想到这次事件还让我找到这一招 —— 自动拒绝敏感字评论!可以对付垃圾评论,也足够应付某些嘴巴不干净的人,这样就眼不见为净了,也节省不少时间,呵呵。说真的,还要感谢那些不够理智的人。
实现方法
下面这个代码可以直接拒绝带有指定字眼的评论,也就是让评论者无法提交到网站的数据库中。本人亲测有效!
将以下代码添加到主题目录的functions.php模板中。
//自动拒绝带有敏感字眼的评论,使之无法评论 /////////////////////////////////////// function in_comment_post_like($string, $array) { foreach($array as $ref) { if(strstr($string, $ref)) { return true; } } return false; } function drop_bad_comments() { if (!empty($_POST['comment'])) { $post_comment_content = $_POST['comment']; $lower_case_comment = strtolower($_POST['comment']); $bad_comment_content = array( '敏感字1', '敏感字2' ); if (in_comment_post_like($lower_case_comment, $bad_comment_content)) { header("HTTP/1.1 406 Not Acceptable"); header("Status: 406 Not Acceptable"); header("Connection: Close"); wp_die( __('您的评论中带有敏感字!') ); } } } add_action('init', 'drop_bad_comments');
说明:使用时,任何包含在$bad_comment_content数组内的字符,都将会被自动拒绝。所以把上面11和12行代码中的“敏感字1”“敏感字2”换成你想要阻止的垃圾评论字眼即可。如果使用的是Ajax无刷新评论的话要把最后函数里的wp_die替换为err。
使用插件
这款插件叫做wp-itluren-comment-filter,貌似作者的网站已经打不开了。不过还是非常好用的,还可以以昵称 IP 邮箱 网址 内容片断为根据指定评论人员黑名单,并阻止他们提交评论。同时,评论次数超过设定的范围就会暂时禁止评论。当然,还将全英文、全部复制文章内容作为内容的评论进行过滤。最后为了安全起见,还提供了禁止特定IP用户访问站点!!