WordPress会产生自动草稿,后台不可见,这些东西无声无息的存在于数据库中,导致post_id不连续,看过一些文章写如何禁用自动草稿,必须更改核心文件,让我对wp略有失望,不明白为什么做了一个不允许外人用钩子函数更正的动作,直到今天读了一篇文章。

为什么禁用自动草稿功能是个坏主意

自动草稿为什么存在?这是因为WordPress允许多个用户同时编辑文章,假设两个用户同时点击新建文章,满腔热情的撰写,默认的自动保存时间是60秒,那么他们的文章几乎同时在数据库中创建记录,这时候就会产生竞争,竞争极有可能导致其中一个用户获得错误的post_ID,并导致其中一个用户的内容被覆盖或者丢失。

两个用户获得的文章ID应该是不同的,自动草稿总是在编辑文章之前创建,从而避免两个用户的浏览器存储着相同的文章ID。

自动草稿会制造垃圾?这点不用担心,只要发生自动保存或者手动保存,自动草稿就会转变成草稿或者已发布的文章,自动草稿不消失的唯一可能是点击创建文章后立刻离开。WordPress有回收机制,这个草稿最多存在7天,7天之后,当有用户编辑文章时,这些垃圾草稿就会被删除。

详情请阅读http://wordpress-hackers.1065353.n5.nabble.com/Disable-Stop-quot-auto-draft-quot-posts-td914.html

单作者WordPress系统?

当然,很多博主是一个人写文章, 永远不存在竞争问题,还可能用文章ID当固定链接,可能对自动草稿比较近忌讳,链接还是连续的好。那么,修改核心文件不可避免,当你需要修改核心文件时,就是WordPress的开发者在说:Don 't do it, it's a bad idea! 不同的人有不同的看法,但有一点是肯定的,这样做会导致升级很麻烦。也许以后会有折中的方案。

8条留言

  1. 我的firefox最近老是崩溃,文章写了一半,重启之后就再也找不着了,这点有点小失望啊!!!

    1. 我比较怕丢文章,所以我从来不禁用自动保存功能,顶多限制一下草稿数量

  2. 首先说明我就是一个每次新版出来后要折腾半天将自动草稿关闭的作者。其次,对你文章中的段落:

    假设两个用户同时点击新建文章,满腔热情的撰写,默认的自动保存时间是60秒,那么他们的文章几乎同时在数据库中创建记录,这时候就会产生竞争,竞争极有可能导致其中一个用户获得错误的post_ID,并导致其中一个用户的内容被覆盖或者丢失。

    这一观点表示不同意。搞过开发的人都知道,就算两个人同时点击,新建文章或是同时网数据库插入数据,是绝对不可能产生冲突ID的,有一个优先级的问题,还有你说的同时,是不可能做到的,不信你自己试试。只要有几万分之一秒的前后差距,这时你可能看起来是同时了,对于计算机还是一先一后,照样是先来的先存储,后来后存储。

    1. 这是我读过的一篇文章介绍的,很高兴你不同意,因为我也半信半疑,但我能力有限,无法证明它是错误的,所以唯有记录之,再次感谢你如此详细的评论。

      1. 因为昨天刚刚升级到了WP3.5,继续折腾了一下自动草稿问题,貌似目前为发现有问题。

        1. 恩恩,看来那部分变化不大。我是懒人,能不折腾的都不折腾,嘿嘿,所以谢谢你告诉我

评论功能已关闭