使用WordPress已经好几天了,除去之前导入的数据,自己也新发布了几篇文章,只是偶然发觉发布出来的文章ID增长特快,并非连续的。知道这个情况后,我打开数据库查看了一番,发现很多文章都占用了好几个ID,和我之前接触到的一篇文章对应一个ID有所不同。

经进一步观察,原来是WordPress为了减少数据丢失,提供了一个自动保存机制,每篇文章在修改的时候都会隔一段时间自动保存一次。在一定程度上,此功能确实有一定的好处。感觉很奇葩的是,文章每自动保存一次都会占用一个ID,这样导致的问题是本站发布出来的文章不到20篇,数据库里却已经有了30余篇的文章数据,所以在前台出现发布文章ID不连续的情况。

依此,如果每篇文章都反复地修改定会占用更多的ID,造成文章间的严重不连续。而自动保存的数据都不会自动清除,如此长期下去,冗余的数据越积越多,使其数据库越发臃肿,终有一天会崩溃的。

所以我索性选择了禁用WordPress的自动保存机制,现推荐一种很管用的方法。

直接修改当前主题下的functions.php文件,该文件位于/wp-content/themes/对应主题文件夹下,找到后将其打开,在 ?> 前添加以下代码,需要知道的是此方法仅对当前主题生效,切换其它主题后,自动保存机制会继续开启。

/* 取消自动保存和修订版本 */
remove_action('pre_post_update', 'wp_save_post_revision');
add_action('wp_print_scripts', 'disable_autosave');
function disable_autosave() { wp_deregister_script('autosave');}

禁用自动保存机制后,接下来就应该去清理之前的冗余数据了,我们可以安装一个WP Cleaner插件进行垃圾数据清理,当然我推荐大家自行在phpMyAdmin打开sql数据库,执行sql语句清理。

DELETE FROM wp_posts WHERE post_type = "revision"

注:wp_为数据库表单前缀,视实际情况修改。

经多次验证,上述方法安全有效。如您因操作不当而导致数据丢失,本人不承担任何责任,望君谨慎行事!

 
目前共有3条评论
你目前的身份是游客,评论请输入昵称和电邮!

  1. 我现在才100篇文章,ID就到800多了哈
    Joe 2014.02.28 21:47 @
  2. 有时候访问不了博主的站?为什么呢
    博客网址之家 2013.12.31 15:57 @
  • 暂无Trackback