如何快速删除wordpress文章历史版本,两种简单方法搞定!附删除自动草稿数据方法

2022年5月9日学习笔记1 17,150字数 1526阅读5分5秒阅读模式

如何快速删除wordpress文章历史版本,两种简单方法搞定!附删除自动草稿数据方法

WordPress有很多人性化的设计,比如自动草稿文章历史版本

这两个功能虽好,避免了停电或者断网,写的资料没保存的情况,即使写错了,有历史版本可以回溯也是极好的。

但是!时间一久,你就会发现,数据库会变得非常庞大,特别是wp-post表,而且大部分都是重复的。

比如我们站有个页面专门放链接失效补链的,有新的链接我就会放入到这个文章中,结果不知不觉,这个页面就积累了27个版本:

image-20220509153941254短短几天,我就修订了27个版本

这27个版本在数据库中都是单独存放的,等于这一个页面,抵得上正常27个页面所占的空间了。

为了节省数据库空间,提高博客网站速度,我们删除掉这些历史修订版本和草稿是有必要的!

该如何做呢?其实也很简单,这里提供两种方式来批量删除数据库中wordpress历史文章版本和自动保存的草稿。

方法一:利用Wordpress自带的代码

WP是提供了操作数据库的方法的,我们只要把下面的代码复制到主题目录下的function.php中,再刷新下文章,就会自动删除全部文章修订版本和自动草稿文章。

代码为:

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

这段代码不推荐长期放在function.php中,定期清理的时候,放入即可。

(你敢保证就没有需要自动保存的时候?)

方法二:使用数据库SQL语句命令

对数据库进行删除操作前,请一定记得先备份数据库!!!

首先我们进入数据库管理界面,一般是可以通过phpmyadmin登录后打开数据库管理系统,然后找到wordpress的数据库,点击SQL按钮,就可以输入执行语句命令了。

我们可以通过执行下面这段语句,就可以快速找出所有文章历史修订版本和草稿:

SELECT * FROM wp_posts WHERE post_type = 'revision' or post_status = 'auto-draft';

效果如图(界面可能会不同):

image-20220509160108608

可以看到已经发现了2495条记录!

事实上我总共也才只有6000多数据,这个就快占了一半了!

接下来我们就可以开始动刀子了!

首先执行下面这段语句命令,可以删除掉所有历史文章修订版本:

DELETE FROM wp_posts WHERE post_type = 'revision';

下面这段是删除所有自动草稿:

DELETE FROM wp_posts WHERE post_status = 'auto-draft';

这样就删除了所有wordpress历史文章版本和自动保存的草稿!

但是在这些历史文章版本和草稿中,通常还有很多相关联的数据,这个一般存在post_postmeta中,我们也可以一并删除,执行下面这段sql命令即可:

/* 下面这一段可以同时完成上面两段的工作 */
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';

这样就可以完成所有清理工作!

 

其实还可以用插件的方法,但是这种一次性的工作大可不必这么麻烦,推荐还是SQL语句命令,最方便!

如何获取网站的图片及文件上传接口 学习笔记

如何获取网站的图片及文件上传接口

图片与文章内容无关 之前有一个图床程序,利用的是公共的图片上传接口。 最近测试了下,发现有一些不能用了,我就在想该如何获取到新的图片上传接口呢? 根据我最近学到的一些知识,其实图片上传原理都是差不多:...
宝塔面板如何通过IP直接访问网站目录? 学习笔记

宝塔面板如何通过IP直接访问网站目录?

最近有个服务器要过期了,于是我想最后利用一下这个服务器测试下新开发的小项目。 但是我又不想解析域名给他。 那该如何通过服务器的IP,直接访问到网站的目录完成测试呢? 如果我们直接在宝塔面板中创建站点,...
Chrome如何清除单个站点域名的缓存? 学习笔记

Chrome如何清除单个站点域名的缓存?

最近在学习TP6,虽然网上很多人都在说这是个过时的框架,但是我觉得它如果能达成我的开发目的,就是有价值的。所以依然还在学习中。   但是今天突然就遇到了一个很奇怪的问题,开发的页面不显示! ...
评论  1  访客  0  作者  1
    • 小笔
      小笔

      SQL大全点这里 → SQL大法好!

    发表评论