- A+
WordPress的版本修订历史(revision)、自动保存(autosave)和自动草稿(auto-draft)功能会非常讨厌的增加文章ID的数字,会造成连续的两篇文章,ID数值可能会相差很多,让我们这些希望文章ID连续的人感到非常不舒服。WordPress产生的自动草稿,后台不可见,这些东西无声无息的存在于数据库中,导致post_id不连续这是我们最痛恨的,但是看过一些文章写如何禁用自动草稿,必须更改核心文件,让我对wordpress略有失望,不明白为什么做了一个不允许外人用钩子函数更正的动作,直到今天读了一篇文章才了解开发者深切用意。
《为什么禁用自动草稿功能是个坏主意》
原文地址(可能已经打不开了):http://wordpress-hackers.1065353.n5.nabble.com/Disable-Stop-quot-auto-draft-quot-posts-td914.html
自动草稿为什么存在?这是因为WordPress允许多个用户同时编辑文章,假设两个用户同时点击新建文章,满腔热情的撰写,默认的自动保存时间是60秒,那么他们的文章几乎同时在数据库中创建记录,这时候就会产生竞争,竞争极有可能导致其中一个用户获得错误的post_ID,并导致其中一个用户的内容被覆盖或者丢失。
两个用户获得的文章ID应该是不同的,自动草稿总是在编辑文章之前创建,从而避免两个用户的浏览器存储着相同的文章ID。
自动草稿会制造垃圾?这点不用担心,只要发生自动保存或者手动保存,自动草稿就会转变成草稿或者已发布的文章,自动草稿不消失的唯一可能是点击创建文章后立刻离开。WordPress有回收机制,这个草稿最多存在7天,7天之后,当有用户编辑文章时,这些垃圾草稿就会被删除。
单作者WordPress系统?
当然,很多博主是一个人写文章, 永远不存在竞争问题,还可能用文章ID当固定链接,可能对自动草稿比较近忌讳,链接还是连续的好。那么,修改核心文件不可避免,当你需要修改核心文件时,就是WordPress的开发者在说:Don 't do it, it's a bad idea! 不同的人有不同的看法,但有一点是肯定的,这样做会导致升级很麻烦。也许以后会有折中的方案。
我们如果决定非要去掉这个功能,网上教程很多,包括修改wordpress源文件的,使用插件的,各有各好处,修改文件的,属于一刀断的,而使用插件,方便快捷。但其实还有另外一种,比较灵活的方法,不改源文件,也不用插件,利用模板文件中的functions.php可以轻松实现禁用自动保存草稿功能,如果你的模板中没有functions.php文件,请新建一个。
方法如下,编辑functions.php文件,在里面添加:
<?php
function disableAutoSave(){
wp_deregister_script('autosave');
}
add_action( 'wp_print_scripts', 'disableAutoSave' );
?>
这就是传说中的wordpress hook大法,有兴趣的可以去试试。不过最新版本的wp不知道还能不能使用。有待用户自己去测试吧,给我反馈更好!谢谢