WordPress自动拒绝敏感字评论的方法

来自:互联网
时间:2018-10-18
阅读:
免费资源网 - https://freexyz.cn/

开始我还想找自动删除垃圾评论的方法,因为批量删除即便不慢,但点一点还是浪费了时间,没想到这次事件还让我找到这一招 —— 自动拒绝敏感字评论!可以对付垃圾评论,也足够应付某些嘴巴不干净的人,这样就眼不见为净了,也节省不少时间,呵呵。说真的,还要感谢那些不够理智的人。

实现方法

下面这个代码可以直接拒绝带有指定字眼的评论,也就是让评论者无法提交到网站的数据库中。本人亲测有效!
将以下代码添加到主题目录的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用户访问站点!!

下载地址

垃圾评论

免费资源网 - https://freexyz.cn/
返回顶部
顶部