
WordPress 后台的“评论”列表如果积压了几千上万条垃圾评论,逐条删除效率极低;而直接进 phpMyAdmin 操作数据库又有一定门槛。如果你已经安装了 Code Snippets 插件,可以用一段临时 PHP 代码,一键清空全站评论——执行完立刻禁用并删除片段即可,无需碰数据库。
⚠️ 使用前必读(非常重要)
- 不可逆操作:代码执行后,所有评论和评论元数据会被永久删除,不经过回收站,无法恢复。
- 务必先备份:执行前请先用 UpdraftPlus、Duplicator 等插件备份整站,或至少导出数据库。
- 一次性使用:启用片段后会立即执行,执行完必须立刻禁用并删除该片段,避免后续误触发。
- 仅清空评论:这段代码只影响
wp_comments和wp_commentmeta两张表,不会删除文章、页面、用户或媒体文件。
操作步骤
- 进入 WordPress 后台 → Snippets → Add New。
- 给片段起一个名字,例如:
一次性清空全部评论。 - 把下方代码粘贴到代码框中。
- 下方选项选择 “Run snippet everywhere”(在所有位置运行)。
- 点击 “Save Changes and Activate”(保存并激活)。
- 激活后代码会立即执行,刷新任意前台或后台页面即可确认评论已被清空。
- 立刻回到 Snippets 页面,禁用该片段,并彻底删除它。
代码片段
/*
* 一次性清空 WordPress 全部评论与评论元数据
* 用法:新建 Code Snippets 片段 → 粘贴 → 启用一次 → 执行完立刻禁用 + 删除
* 注意:不可恢复,执行前请务必备份数据库!
*/
global $wpdb;
$wpdb->query( "TRUNCATE TABLE {$wpdb->comments}" );
$wpdb->query( "TRUNCATE TABLE {$wpdb->commentmeta}" );
代码说明
TRUNCATE TABLE:直接清空整张表,比逐条DELETE快得多,尤其适合评论量大的站点。{$wpdb->comments}:对应wp_comments表,存储所有评论内容。{$wpdb->commentmeta}:对应wp_commentmeta表,存储评论的扩展元数据。- 使用
$wpdb全局对象,能自动适配你站点自定义的数据库表前缀(比如wp_以外的前缀),无需手动改表名。
执行后建议
- 清空评论后,建议进入 设置 → 讨论,关闭“允许他人在新文章上发表评论”或开启“评论必须经人工批准”,从源头减少垃圾评论。
- 如果站点需要保留评论功能,可安装 Akismet、Antispam Bee 等反垃圾插件。
- 定期清理:若评论再次积压,可重复此流程,但每次都要先备份。
常见问题
Q:只想删除垃圾评论,保留正常评论怎么办?
A:这段代码是全量清空,不适合部分删除。如需只删垃圾评论,建议在后台“评论”页面按“垃圾”筛选后批量删除,或使用 WP-Optimize 等清理插件。
Q:执行后前台文章显示“0 条评论”正常吗?
A:正常。因为评论数据已被清空,文章的评论计数会归零。如需恢复计数,可安装并运行 “Reset Comment Count” 类插件重新统计。
Q:不装 Code Snippets 能实现吗?
A:可以,但需要进 phpMyAdmin 或命令行执行 SQL:TRUNCATE TABLE wp_comments; TRUNCATE TABLE wp_commentmeta;
前提是确认你的表前缀是 wp_,否则需替换为实际前缀。
原创文章,作者:小微财服云,如若转载,请注明出处:https://www.779it.com/356.html