如何批量清理wordpress所有文章和标签,保留设置,保留分类?
AI 概述
本文提供WordPress清空垃圾内容的方案,需求为删除文章、页面、标签、评论等数据,保留分类、网站设置、用户、插件主题。给出MySQL批量SQL、WP-CLI、phpMyAdmin三种操作方式,附带完整清理语句,操作前务必备份数据库,清理后站点配置完整可重新建站。
目录
文章目录隐藏

WordPress 做的网站,发现数据很多了,占了几十个 G 的空间,一点也不收录,估计是垃圾内容太多了,干脆删除数据重新做。
目的:
- 删除 所有文章(post);
- 删除 所有页面(page);
- 删除 所有标签(Tag);
- 保留 分类(Category);
- 保留 WordPress 所有设置;
- 保留 主题、插件、用户、菜单等。
那么最简单的方法就是直接操作 MySQL。
不管数据要不要的,操作前一定先备份数据库,免得后悔了还可以恢复。
一、SQL 一键清理(推荐)
假设你的数据表前缀是:
wp_
1. 删除所有文章、页面、自定义文章
DELETE FROM wp_posts WHERE post_type IN ( 'post', 'page', 'attachment', 'revision', 'nav_menu_item', 'custom_css', 'customize_changeset', 'oembed_cache' );
如果还有 WooCommerce、自定义文章类型,也可以直接:
DELETE FROM wp_posts WHERE post_type <> 'acf-field';
或者更加彻底:
TRUNCATE TABLE wp_posts;
不建议直接 TRUNCATE,因为还要处理关联数据。
2. 删除文章元数据
TRUNCATE TABLE wp_postmeta;
3. 删除评论
TRUNCATE TABLE wp_comments;
TRUNCATE TABLE wp_commentmeta;
4. 删除标签(保留分类)
删除 taxonomy=post_tag
DELETE tt, t FROM wp_term_taxonomy tt JOIN wp_terms t ON tt.term_id=t.term_id WHERE tt.taxonomy='post_tag';
再删除关联
DELETE FROM wp_term_relationships;
然后更新分类统计
UPDATE wp_term_taxonomy SET count=0 WHERE taxonomy='category';
5. 删除孤立 termmeta(可选)
DELETE tm FROM wp_termmeta tm LEFT JOIN wp_terms t ON tm.term_id=t.term_id WHERE t.term_id IS NULL;
6. 重置 AUTO_INCREMENT(可选)
ALTER TABLE wp_posts AUTO_INCREMENT=1; ALTER TABLE wp_postmeta AUTO_INCREMENT=1; ALTER TABLE wp_comments AUTO_INCREMENT=1; ALTER TABLE wp_commentmeta AUTO_INCREMENT=1; ALTER TABLE wp_terms AUTO_INCREMENT=1;
二、如果你只想保留分类
执行下面 SQL 即可。
删除所有文章:
TRUNCATE wp_posts; TRUNCATE wp_postmeta; TRUNCATE wp_comments; TRUNCATE wp_commentmeta; TRUNCATE wp_term_relationships;
然后,删除所有标签:
DELETE tt,t FROM wp_term_taxonomy tt JOIN wp_terms t ON tt.term_id=t.term_id WHERE taxonomy='post_tag';
最后
UPDATE wp_term_taxonomy SET count=0 WHERE taxonomy='category';
三、WP-CLI(服务器推荐)
如果有 SSH:
wp post delete $(wp post list --format=ids) --force
删除标签
wp term delete post_tag $(wp term list post_tag --field=term_id)
分类不会删除。
四、phpMyAdmin 图形界面
直接清空:
wp_posts wp_postmeta wp_comments wp_commentmeta wp_term_relationships
然后删除:
taxonomy=post_tag
即可。
推荐用于”重新开始做站”的完整 SQL
如果你想保留:
- 网站设置(wp_options);
- 用户(wp_users);
- 分类(Category);
- 菜单;
- 插件;
- 主题;
- 固定链接;
- SEO 设置(如 Rank Math、Yoast);
- 小工具;
- 自定义设置。
而仅删除:
- 所有文章;
- 所有页面;
- 所有附件;
- 所有评论;
- 所有标签;
- 所有文章关联关系。
那么可以执行下面这一组 SQL(将 wp_ 替换为你的表前缀):
-- 删除文章及页面等内容 DELETE FROM wp_posts WHERE post_type IN ( 'post', 'page', 'attachment', 'revision', 'nav_menu_item', 'custom_css', 'customize_changeset', 'oembed_cache' ); -- 删除文章元数据 TRUNCATE TABLE wp_postmeta; -- 删除评论 TRUNCATE TABLE wp_comments; TRUNCATE TABLE wp_commentmeta; -- 删除文章与分类/标签的关联 TRUNCATE TABLE wp_term_relationships; -- 删除所有标签 DELETE tt, t FROM wp_term_taxonomy tt JOIN wp_terms t ON tt.term_id = t.term_id WHERE tt.taxonomy = 'post_tag'; -- 重置分类文章数量 UPDATE wp_term_taxonomy SET count = 0 WHERE taxonomy = 'category'; -- 删除孤立的 termmeta(可选) DELETE tm FROM wp_termmeta tm LEFT JOIN wp_terms t ON tm.term_id = t.term_id WHERE t.term_id IS NULL;
附完整 WordPress 数据库清理指南:

这样执行后,网站配置、用户、分类、主题、插件等都会保留,数据库相当于变成一个“干净的空站”,可以直接重新导入或发布新的文章。
以上关于如何批量清理wordpress所有文章和标签,保留设置,保留分类?的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 如何批量清理wordpress所有文章和标签,保留设置,保留分类?
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 如何批量清理wordpress所有文章和标签,保留设置,保留分类?
微信
支付宝