今天登录一个网站,发现后台出现了上万条评论,几乎都是垃圾评论。通过一下两种方式删除了的90%以上的垃圾评论,这里总结一下。
wp db query "SELECT comment_ID FROM wp_comments WHERE comment_author_email LIKE '%.xx'" --skip-column-names | xargs wp comment delete --force
发现好多评论使用邮箱是 .xx 结尾的,所以都删除掉
| 参数 | 说明 |
|---|---|
wp db query | WP-CLI 的数据库查询命令,直接执行 SQL 语句 |
"SELECT comment_ID ..." | SQL 查询语句,只选择 comment_ID 字段,减少数据传输量 |
WHERE comment_author_email LIKE '%.xx' | LIKE 是模糊匹配操作符,% 是通配符(匹配任意字符)。例如: user@spam.xx、test.xx 都会被匹配 |
--skip-column-names | 关键参数:去掉 MySQL 输出的表头行(即 comment_ID 字段名),只输出纯数据。不加的话第一行会是 comment_ID,会导致后续命令报错 |
删除制定文章的的全部留言。

wp comment list --post_id=1 --field=comment_ID --number=10 | xargs wp comment delete --force
| 参数 | 说明 |
|---|---|
wp comment list | WP-CLI 的评论列表命令,用于查询和显示评论 |
--post_id=1 | 筛选条件:只查询属于文章 ID 为 1 的评论 |
--field=comment_ID | 关键参数:指定只输出 comment_ID 字段,不输出其他信息(如作者、内容等) |
--number=10 | 限制返回条数:只返回前 10 条评论(默认按评论 ID 升序排列) |