月光博客 » 编程开发 » 禁用WordPress 3.0自动草稿存档

禁用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)功能。

禁用WordPress 3.0自动草稿存档

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
    园子   说道:
    我还没有升级
    等升级了来用用这个方法
    支持(19反对(9回复
  1. 2
    leecairen   说道:
    呵呵呵
    好文章啊
    支持(16反对(7回复
  1. 3
    雪狼子   说道:
    都成了博客达人了!
    支持(15反对(8回复
  1. 4
    浩子   说道:
    我还是觉得修改源文件方法不错
    只要做个记录,下次升级后再修改就OK。
    现在不像以前的2.9了,修改的文件少了,而且减少插件何乐而不为呢
    支持(11反对(4回复
  1. 5
    潘宏彬   说道:
    先支持一下,再支持一下,呵呵
    支持(13反对(6回复
  1. 6
    a   说道:
    这个功能确实令人抓狂,什么垃圾功能,早该取消了
    支持(16反对(9回复
  1. 7
    微波信号   说道:
    不知道过渡情况怎么样,我还是不敢升级,生怕除了什么问题,一折腾就没完没了的,现在先凑活用着呢。
    支持(9反对(4回复
  1. 8
    junofeeng   说道:
    我升级了。按月光的方法去关掉自动保存去……
    支持(16反对(11回复
  1. 9
    colee   说道:
    写个插件管理他们不就行了,读出表数据,选择是否删除,ID不要管了,做ID控没意义
    支持(7反对(2回复
  1. 10
    CH5iRe   说道:
    我也是用超级开关,呵呵
    支持(12反对(8回复

发表留言