在我们使用WordPress编写文章或修改文章时,WordPress会自动保存生成一个修订版本,如果一篇文章经过几次的修订,你就会发现WordPress在不知不觉中已经帮我们保存了该文章的好几个版本,主要是方便恢复,初衷是好的,不过日积月累所生成的修订版本数量是所写文章的好几倍,会产生大量的冗余数据,加重服务器负担,拖慢数据加载的速度,极大影响SQL查询的效率。所以
方法一:执行 SQL 语句命令批量清除WordPress文章的修订版本和自动草稿生成的多余数据
1_通过SQL命令先来看一下冗余数据(无用的自动修订、草稿等)。执行如下 SQL 命令:
-- 查看自动修订产生的冗余数据
-- 注意,请根据自己的情况,修改表名(主要是表前缀)
SELECT * FROM wp_posts WHERE post_type = 'revision';
2_数据库中显示内容都是一些冗余的数据,可以直接删除。删除 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';
wp_posts 是 WordPress 的文章数据表,wp_ 是默认的前缀,如果自定义更改过,请根据实际修改即可。
删除完后,可以再执行一遍查询命令,可以看见已经没有冗余数据了。
方法二:通过代码来进行批量删除WordPress文章的修订版本和自动草稿生成的数据
将下边的代码添加到到当前主题目录下 functions.php ?>
// 删除修订版本所对应的相关联数据和自动草稿中的冗余数据。post_status='auto-draft'对应的是自动草稿数据
$wpdb->query( "DELETE FROM $wpdb->posts WHERE post_status='auto-draft' or post_type = 'revision'" );
其实,我们只需要定期删除修订版本和自动草稿,没必要将此代码留在主题中,可以在准备清理修订版本时再加到主题中。
© 版权声明
部分内容源于网络
THE END






请登录后查看评论内容