add_filter('pre_comment_content', function($c){
if (preg_match('/微[\s\-]*信|加[\s\-]*v/i', $c)) {
wp_die('评论包含被禁止的内容', '提交失败', array('response' => 403));
}
return $c;
});
讨论设置的黑名单里堆了六十多个关键词,一天还是进来八千多条推广评论,把词拆成拼音或者中间加空格就绕过了。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,黑名单做的是整词匹配,拆字、插符号、全角半角一换就命不中。命中之后也只是进待审核,并不会拦在提交之前。机器提交不看页面提示,黑名单对它只是延迟而不是阻挡。
围绕「评论黑名单失效」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。
处理上按这个顺序:把黑名单换成按正则匹配,常见拆分写法写进同一条规则,别一条条加词;给评论提交加频率限制和隐藏字段校验,机器通常过不了这两关;已进队列的批量标记为垃圾,别一条条点,审核页支持全选后批量操作。
改完只确认一件事:同一批变体文案再提交直接被 403 拦下,待审核列表不再增长。
