wordpress删除文章修订版本和自动草稿而残留的数据

技术 · 2023-06-10 · 185 人浏览
数据无价!友情提示,清理WordPress数据库冗余数据之前,请务必备份数据库!务必!

下面介绍批量删除数据库中因WordPress文章修订版本、自动保存和自动草稿生成的大量占用数据库空间的冗余数据的3种方法:

方法一:执行 SQL 语句命令批量清除WordPress文章的修订版本和自动草稿生成的多余数据
展开两种方法执行 SQL 语句命令
方法1:进入 mysql 命令,选择你所创建的数据库的命令:mysql> USE MYSQLDATA; (注:MYSQLDATA是数据库的名称。按回车键出现 Database changed 时说明选择数据库操作成功!)。选择好相应的数据库后,执行 SQL 命令。

方法2:通过 phpmyadmin 登录后打开数据库管理系统,找到网站对应的wordpress数据库,点击后,在上方有个 SQL 按钮,执行 SQL 命令。

通过SQL命令先来看一下冗余数据(无用的自动修订、草稿等)。执行如下 SQL 命令:

-- 查看自动修订产生的冗余数据
-- 注意,请根据自己的情况,修改表名(主要是表前缀)
SELECT * FROM wp_posts WHERE post_type = 'revision';

liq239oz.png
数据库中的冗余数据
如上图,数据库中显示内容都是一些冗余的数据,可以直接删除。删除 SQL 命令如下:

-- 删除冗余数据。仅删除 wp_posts 表中的修订版本。
DELETE FROM wp_posts WHERE post_type = 'revision';
-- 删除自动草稿冗余数据。
DELETE FROM wp_posts WHERE post_status = 'auto-draft';
-- 删除修订版本所对应的相关联数据和自动草稿中的冗余数据。a.post_status='auto-draft'对应的是自动草稿数据
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_status='auto-draft' or a.post_type = 'revision';
PS:wp_posts 是 WordPress 的文章数据表,wp_ 是默认的前缀,如果自定义更改过,请根据实际修改即可。

方法二:通过代码来进行批量删除WordPress文章的修订版本和自动草稿生成的数据
将下边的代码添加到到当前主题目录下 functions.php 文件(后台—》主题—》编辑—》选择模板函数),在php结束标记 ?> 前 ,然后刷新一下网页,会删除全部文章修订版本和自动草稿文章。

// 删除修订版本所对应的相关联数据和自动草稿中的冗余数据。post_status='auto-draft'对应的是自动草稿数据
$wpdb->query( "DELETE FROM $wpdb->posts WHERE post_status='auto-draft' or post_type = 'revision'" );

方法三:利用WordPress数据库清理优化插件 WP Clean Up 或 WP Cleaner 批量删除
可以在后台直接搜索 WP Clean Up 进行安装,或者 下载 WP Clean Up 后,解压并上传到 /wp-content/plugins/ 目录,然后在后台“插件”那里启用。

WP Clean Up 插件是一个 wordpress数据库清理优化插件,启用后“设置”→“WP Clean Up”即进入了操作界面,就可以看到插件的两个主要功能:清理数据和优化数据库。

WP Cleaner 插件的功能很简单,就是为了快速删除自动保存的文章冗余修订版和草稿的,节省空间,提高速度。界面也很简单,直接安装后,不需要设置就可以使用,WP Cleaner插件有保护机制,无论怎么操作都不会影响已发布的文章。

Theme Jasmine by Kent Liao