摘要:如果你的wordpress博客使用post ID作为固定链接地址的话,你会发现发表的文章日志ID是不连续的。这是由于wordpress具有自动保存和修订功能引起的。当你在wordpress后台编写日志时,会自动保存草稿并把日志历史修订版本保存到数据库中,每保存一份,日志ID会自动加1,因此,在后台编写日志时间越长,则产生的修订版本越多,ID间隔也越大。此外,当你在后台插入图片时,ID也会自动加1。
在velep.com成长之路22—使用Windows Live Writer编写日志一文中介绍了这种情况的弊端,即造成数据库臃肿。有两种方法解决:1. 用Windows Live Writer离线编写文章日志;2. 禁止自动保存和自动修订功能。前一种方法已在成长之路22中介绍了。reille blog实现了这两种方法。
本文介绍第二种方法,同时分享了如何清理数据库中的日志历史修订版本。
1. 延长自动保存时间和取消自动修订功能
WordPress默认是每60秒就会对文章日志进行自动保存,这里采取延长自动保存时间来实现。打开wp-config.php文件,搜索“require_once(ABSPATH . ‘wp-settings.php’);”,在其前面/上面添加如下代码:
/** 自动保存10小时一次. */ define(‘AUTOSAVE_INTERVAL’, 36000); /** 取消自动修订版. */ define('WP_POST_REVISIONS', false);
可根据需要修改自动保存时间。
注:经过实践,要禁止自动保存,还需要修改以下两个小文件:
wp-admin/post-new.php
wp-admin/post.php
注释掉这行:
//wp_enqueue_script(‘autosave’);
2. 清理数据库中文章历史修订版本
如果数据库已经存在了历史修订版本,我们可以把它们清理掉。这里先摘录一下网上的解决方法:
为以防万一,操作数据库之前先进行备份。登录主机phpmyadmin 中进行数据库管理,SQL语句命令行中写入以下运行代码执行(如果更改了数据库表名的前缀,需要将数据表名称中wp改成你的前缀):
delete from wp_posts where post_type='revision';
由于reille在phpmyadmin中找不到SQL语句命令行,所以没采用上述方法操作的。采用的方法如下:
- 数据库备份;
- 登陆phpmyadmin后台并选择wp_posts数据表,可看到很多发表的日志文章和上传的图片占用的ID;
- 在导航栏中,如下图,点击搜索,进入搜索页面:
- 进入搜索页面后,找到post_type一栏,如下图所示:
- 在下拉框中选择“=”,并在输入框输入:revision,最后如下图所示:
- 点击右下角的执行,则会在数据库中搜索出post_type = revision数据项,把这些项选中,执行删除操作。注意,执行删除操作前,最后核对下数据。我们只需要删除post_type = revision的数据项。
后记:在清理日志历史修订版本之前,reille blog的数据库大小截止目前是1.94M,清理之后大小为1.34M,效果还是很明显的。
最后提醒想清理日志历史修订版本的朋友,但凡数据库的操作,操作前务必进行必要的数据库备份,以防万一。