青青子衿, 悠悠我心, 但为君故, 沉吟至今
« 图说Google数据中心可以不山寨 »

禁用WordPress 3.0自动草稿存档

  昨天将另外几个WordPress博客从2.9.2升级到了3.0.1,没想到发现了一些问题,以前已经很好解决的自动草稿存档问题又出现了,折腾了半天才解决。

  做为一个id控,我一直喜欢用数字id做为日志文件名,而WordPress自从2.6版本之后就出现了几个很令人讨厌的功能:Post Revisions和Autosave,在默认的情况下,日志的ID将不再连续,使用ID做为Permalink结构的用户将会看到一个地址越来越混乱的WordPress,很烦,后来我通过一个插件很完美的解决了这个日志ID不连续的问题,并一直用到了2.9.2都没问题,升级到3.0.1之后,自动草稿又出来了,但是该插件依旧在工作,通过跟踪发现,只要新建一篇日志,即使不写内容,数据库中也会自动保存一篇草稿,这是以前版本的WordPress所没有的现象,也是disable revisions and autosave插件失效的原因。

  既然已经升级到了WordPress 3.0.1,也不好降级,只好再想办法解决Wordpress自动保存草稿的问题,经过搜索,找到了一个不是很好的禁用自动保存草稿的方法。

  解决WorPress 3.0.1自动草稿的方法是:依旧启用原先的disable revisions and autosave插件,然后编辑wp-admin/includes/post.php文件,在if ( $create_in_db ) {语句之前加入一行$create_in_db = false; 语句,经过实际测试,增加了这一行之后,新建日志,数据库就不会出现一篇自动存档的草稿了。

  但是这种修改WordPress源代码的方法是很不好的,这会导致以后每次WordPress升级,都需要维护修改一次,工作量会越来越大,不如用插件的方式解决,可惜目前实在找不到如何使用插件来解决这个问题,要是WordPress下一个版本能官方解决就好了。

  更新:上述禁用自动草稿(Auto-Draft)的方法仅仅针对Wordpress 3.1以前的版本,对Wordpress 3.1以后的版本是无效的,添加后保存文章时提示“没有修改权限”。Wordpress 3.1以后的版本修改方法是:

  依旧编辑wp-admin/includes/post.php文件,找到下面两行:

$post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
$post = get_post( $post_id );

  将其替换为如下几行即可:

$post_auto_draft = $wpdb->get_row( "SELECT * FROM $wpdb->posts WHERE post_type = '$post_type' AND post_status = 'auto-draft' LIMIT 1" );
if ( $post_auto_draft ) {
    $post = $post_auto_draft;
} else {
    $post = get_post( wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) ) );
}

  总结:WordPress的自动保存(Auto-Save)、历史版本(Post Revisions)和自动草稿(Auto-Draft)的功能真是麻烦,在数据库中产生大量垃圾数据,并且自动草稿(Auto-Draft)目前只能通过修改源代码来实现,希望WordPress官方能够提供一种选项,让用户可以选择是否启用自动草稿(Auto-Draft)功能。



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/2301.html
  • 文章排行:
  • 1.园子
  • 我还没有升级
    等升级了来用用这个方法
  • 2010/8/24 16:21:04   支持(19)反对(9) 回复
  • 5.浩子
  • 我还是觉得修改源文件方法不错
    只要做个记录,下次升级后再修改就OK。
    现在不像以前的2.9了,修改的文件少了,而且减少插件何乐而不为呢
  • 2010/8/24 10:59:45   支持(11)反对(4) 回复
  • 6.潘宏彬
  • 先支持一下,再支持一下,呵呵
  • 2010/12/7 12:03:22   支持(13)反对(6) 回复
  • 7.a
  • 这个功能确实令人抓狂,什么垃圾功能,早该取消了
  • 2012/7/6 14:29:30   支持(16)反对(9) 回复
  • 8.微波信号
  • 不知道过渡情况怎么样,我还是不敢升级,生怕除了什么问题,一折腾就没完没了的,现在先凑活用着呢。
  • 2010/8/24 10:32:31   支持(9)反对(4) 回复
  • 9.junofeeng
  • 我升级了。按月光的方法去关掉自动保存去……
  • 2010/8/24 10:54:22   支持(16)反对(11) 回复
  • 10.colee
  • 写个插件管理他们不就行了,读出表数据,选择是否删除,ID不要管了,做ID控没意义
  • 2012/4/3 17:39:43   支持(7)反对(2) 回复
  • 12.百度专家
  • 按月光的方法去关掉自动保存去……

    呵呵 我也给朋友弄弄
  • 2010/8/24 15:50:21   支持(9)反对(6) 回复
  • 14.ithinkin
  • 我感觉这个功能挺实用的,昨天我写日志时,校园网突然掉线了,如果没有自动草稿,我刷新后就白写了
  • 2010/11/20 10:57:01   支持(13)反对(10) 回复
  • 15.me521333
  • 3.0.3版本的此文件中有这样一行
    function get_default_post_to_edit( $post_type = 'post', $create_in_db = false ) {
    global $wpdb;

    是不是不用再加你这一行了?
  • 2010/12/13 6:03:46   支持(12)反对(9) 回复
  • 16.FengFree
  • 3.1怎么弄?
    ddwerw 于 2011-3-19 13:42:49 回复
    sdfewrw
    ddwerw 于 2011-3-19 13:43:52 回复
    dddd
  • 2011/2/25 20:06:37   支持(11)反对(8) 回复
  • 17.小小豌豆花
  • 收藏,3.2出来了,有什么变化?
  • 2011/4/29 8:18:45   支持(11)反对(8) 回复
  • 18.外城少侠
  • 求助!!!WP的random-posts-widget-include怎么不显示自动草稿?
  • 2012/2/13 22:56:27   支持(20)反对(17) 回复
  • 21.jiezhou
  • 这个博客也是wordpress?不像啊。。。
  • 2010/8/24 10:00:12   支持(9)反对(8) 回复
  • 23.leecairen
  • 刚发现你的博客,值得一读啊!
  • 2010/8/24 17:57:30   支持(6)反对(5) 回复
  • 25.shuaipeng
  • 我从最简单的bo-blog开始,然后慢慢的也用wp。当我知道wp时人家直接就是3.0的版本了。
  • 2010/8/24 19:49:33   支持(8)反对(8) 回复
  • 26.装B
  • 你是中国人,起个洋人名字?装B!
  • 2012/5/17 19:36:14   支持(7)反对(7) 回复
  • 28.舟山
  • 是啊 每次写的时候自动保存好麻烦,我用的是国外空间自动保存的时候总是慢的很
  • 2010/8/24 15:16:23   支持(10)反对(11) 回复
  • 29.无效
  • 按以上方法做了,测试了一下还是不行,这点真是麻烦
  • 2010/10/23 13:11:09   支持(10)反对(11) 回复
  • 30.猎鹰老公公
  • 如果你不是完美主义者,不是象博主那样的id控,就不要担心这个问题啦。
  • 2011/11/8 11:27:49   支持(10)反对(11) 回复
  • 31.放放风
  • 这种不好收录似乎只有谷歌喜欢是吗?看看qhsgldd.net
  • 2013/8/28 1:25:01   支持(3)反对(4) 回复
  • 32.来啊来
  • wordpress 功能很强大,就是用起来太麻烦,折腾不起.
  • 2010/8/24 9:12:35   支持(9)反对(11) 回复
  • 33.旅行者2号
  • 一个人 写好一个博客已经不容易啦,写好几个博客,怎么写?
  • 2010/8/24 10:25:26   支持(8)反对(10) 回复
  • 35.严重浪漫
  • 威廉你好,经一个朋友介绍,我正在用Super Switch插件,可以关闭自动存档,关闭修订版本。
    我朋友是3.01,他说可以用。
    我是2.9.2,不清楚3.01是否可用。
    你可以试试。

    :-)
    严重浪漫 于 2010-8-25 21:05:44 回复
    顺便问一下,你的WP博客地址是多少,想去看看
    bonum 于 2010-9-15 11:11:07 回复
    3.01超级开关没用
  • 2010/8/25 21:04:27   支持(7)反对(9) 回复
  • 36.Cody
  • 本人还是非常喜欢自动存档的功能。尤其是网络时有时无的情况下。不自动存档,不知道提交的时候忘记复制下来,网络断开就杯具了。
  • 2010/9/7 11:20:20   支持(11)反对(13) 回复
  • 37.望月博客
  • 为啥这个文章用中文署名了,龙威廉!
    williamlong 于 2010-8-24 10:45:28 回复
    中文比英文更好记。
  • 2010/8/24 9:51:16   支持(6)反对(9) 回复
  • 38.就抢网
  • 2.92和很不错了,升什么升?
  • 2010/8/24 17:17:42   支持(11)反对(14) 回复
  • 39.jiechic
  • 其实wordpress 3.0以上版本增加了修订版本,虽然不会自动保存,但是在写日志或者更新日志的时候,都会生成一个修订版本,解决方法在我的博客有。去看看吧
  • 2010/8/24 18:13:04   支持(6)反对(9) 回复
  • 40.骊山居家
  • 自我感觉还是不升级的为好!升级问题太多!
  • 2010/8/24 21:20:10   支持(9)反对(12) 回复
  • 46.闫头
  • 一直用自定义链接,感觉不错。
  • 2010/8/24 17:11:52   支持(4)反对(9) 回复
  • 48.阿七
  • 我还想你会不会发出个技术文章,没想到还真发出来了
  • 2010/8/24 11:49:05   支持(5)反对(11) 回复
  • 49.暮光博客
  • 我只知道月光的英文博客是wp的,其他的博客是什么啊?

    月光的网站还真多!
  • 2010/8/24 9:28:59   支持(6)反对(13) 回复
  • 50.就抢网
  • 升了是英文版的,很多人用不习惯的
  • 2010/8/24 17:18:11   支持(8)反对(17) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.