如何批量清理wordpress所有文章和标签,保留设置,保留分类?

AI 概述
本文提供WordPress清空垃圾内容的方案,需求为删除文章、页面、标签、评论等数据,保留分类、网站设置、用户、插件主题。给出MySQL批量SQL、WP-CLI、phpMyAdmin三种操作方式,附带完整清理语句,操作前务必备份数据库,清理后站点配置完整可重新建站。
目录
文章目录隐藏
  1. 一、SQL 一键清理(推荐)
  2. 二、如果你只想保留分类
  3. 三、WP-CLI(服务器推荐)
  4. 四、phpMyAdmin 图形界面
  5. 推荐用于”重新开始做站”的完整 SQL

如何批量清理 wordpress 所有文章和标签,保留设置,保留分类?

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 数据库清理指南

这样执行后,网站配置、用户、分类、主题、插件等都会保留,数据库相当于变成一个“干净的空站”,可以直接重新导入或发布新的文章。

以上关于如何批量清理wordpress所有文章和标签,保留设置,保留分类?的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

23

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 如何批量清理wordpress所有文章和标签,保留设置,保留分类?

发表回复