wordpress得益于其强大的钩子和过滤器,做个留言评论过滤的功能非常简单。wordpress 网站只要有点流量,就会引来大量的垃圾评论和垃圾留言。wordpress 默认也会有个垃圾评论插件。不过使用的时候需要注册账号,比较麻烦。对于一个小网站来说,设计几个简单的垃圾留言过滤规则,也可以很好效果。
wordprss 的垃圾留言和评论都有哪些
- 纯英文的评论,毕竟一个中文网站不可能有大量的英语评论
- 评论中有推广的网址
- 大量国外的ip的评论
- 其他情况
实现垃圾评论过滤功能的知识点
- 使用钩子 pre_comment_approved ,在写入数据库前修改字段comment_approved
- 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);