wordpress 不用插件,实现一个简单的垃圾留言评论过滤功能

作者

wordpress得益于其强大的钩子和过滤器,做个留言评论过滤的功能非常简单。wordpress 网站只要有点流量,就会引来大量的垃圾评论和垃圾留言。wordpress 默认也会有个垃圾评论插件。不过使用的时候需要注册账号,比较麻烦。对于一个小网站来说,设计几个简单的垃圾留言过滤规则,也可以很好效果。

wordprss 的垃圾留言和评论都有哪些

  1. 纯英文的评论,毕竟一个中文网站不可能有大量的英语评论
  2. 评论中有推广的网址
  3. 大量国外的ip的评论
  4. 其他情况

实现垃圾评论过滤功能的知识点

  1. 使用钩子 pre_comment_approved ,在写入数据库前修改字段comment_approved
  2. comment_approved 是干什么用的

comment_approved 是wordpress 中数据表wp_comments 中的一个字段,用来表示一个评论的被认可成什么。

comment_approved 值 含义
0 表示需要审核
1 表示审核通过
spam 垃圾评论
trash 回收站

实现的原理

通过 钩子pre_comment_approved 获取评论的信息,通过评论的信息特征,比如评论中没有中文,后者有推广的网址,然后设置comment_approved的值,直接归属到垃圾评论或者放入回收站。

实现的代码

// 留言测试

function senlin_get_approved($msg) {
    $ans = 0; // 默认表示需啊审核的

    // 仅仅是个测试, 测试条件
    if(isset($msg['comment_content']) && stristr($msg['comment_content'], 'liuhaolin.com')) {
        $ans = 1;
    }

    return $ans;
}

add_filter('pre_comment_approved', function ( $approved, $commentdata ) {
    return senlin_get_approved($commentdata);
}, 1, 2);

回复

电子邮件地址不会被公开。