当前位置: 首页 > 设计 > 正文
avatar

完美实现关闭WordPress3.1.x系列和WordPress4.4+自动保存(auto-draft)草稿的功能,实现WordPress文章ID的连续性。

WordPress的自动保存功能在我看来是一道伤,鸡肋的很纠结。虽然他的初衷是为了保存用户的文章,以防万一出现意外的情况而丢失。可惜在逻辑上对于自动保存处理的很不好,特别是对于ID有洁癖的人来说更是如此,虽然我不是以ID来命名博客标题的,但是,我依旧要ID的连续。

网上关于此类的修改不胜枚举,但是很多都是只针对一个版本的,WordPress一更新就失效了,3.0.x系列的修改方法就不适合于3.1.x版本的,很是纠结。

WordPress 4.4+关闭自动保存草稿功能

打开 wp-config.php 文件,在 $table_prefix = ‘wp_’; 前面添加下面的两行代码:

define('WP_POST_REVISIONS', false);//禁用历史修订版本
define('AUTOSAVE_INTERVAL', false);//自动保存时间设置为一天

打开 wp-admin/post.php 文件,搜索并注释

//if ( 'attachment' !== $post_type )
//	wp_enqueue_script('autosave');

打开 wp-admin/post-new.php 文件,搜索并注释

//wp_enqueue_script( 'autosave' );

打开 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 );
*/
/* 修改开始*/
global $current_user,$wpdb;
$post = $wpdb->get_row( "SELECT * FROM $wpdb->posts WHERE post_status = 'auto-draft' AND post_type = '$post_type' AND post_author = $current_user->ID ORDER BY ID ASC LIMIT 1" );
if (!($post) ) {
 $post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
 $post = get_post( $post_id );
}
/* 修改结束 */
WordPress 3.1.x关闭自动保存草稿功能

有时候不得不手动修改WP的数据库来调整ID,很是烦恼,最近WP有升级到了3.1.1了,从3.1开始用Super Switch这个插件,稍稍有点效果,但是有时候还是发现会出现auto-draft,正好在看到一篇文章,ShunYea的《关闭WordPress 3.1版的自动草稿(auto-draft)》。经过我在3.1.1下的测试,发现很好,不管我怎么修改之前的文章,新发表的文章ID还是连续的,现在把方法分享给大家,希望对那些有需要的朋友有些帮助。

首先安装Super Switch这个插件,将“保存修订版本”和“自动保存”设为禁止。

然后找到”/wp-admin/includes/post.php”文件,搜索“$create_in_db”,不含引号。可以发现,大概从399行开始代码就是产生这个自动草稿的:

	if ( $create_in_db ) {
		// Cleanup old auto-drafts more than 7 days old
		$old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" );
		foreach ( (array) $old_posts as $delete )
			wp_delete_post( $delete, true ); // Force delete
		$post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
		$post = get_post( $post_id );
		if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) && get_option( 'default_post_format' ) )
			set_post_format( $post, get_option( 'default_post_format' ) );
	} else {
		$post->ID = 0;
		$post->post_author = '';
		$post->post_date = '';
		$post->post_date_gmt = '';
		$post->post_password = '';
		$post->post_type = $post_type;
		$post->post_status = 'draft';
		$post->to_ping = '';
		$post->pinged = '';
		$post->comment_status = get_option( 'default_comment_status' );
		$post->ping_status = get_option( 'default_ping_status' );
		$post->post_pingback = get_option( 'default_pingback_flag' );
		$post->post_category = get_option( 'default_category' );
		$post->page_template = 'default';
		$post->post_parent = 0;
		$post->menu_order = 0;
	}

将上面的代码替换为:

    if ( $create_in_db ) {
        global $current_user;
        $post = $wpdb->get_row( "SELECT * FROM $wpdb->posts WHERE post_status = 'auto-draft' AND post_type = '$post_type' AND post_author = $current_user->ID ORDER BY ID ASC LIMIT 1" );
        if ( !$post ) {
            $post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
            $post = get_post( $post_id );
        }
        /* End */
        // Below is added in 3.1
        if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) && get_option( 'default_post_format' ) )
            set_post_format( $post, get_option( 'default_post_format' ) );
    }

注意,如果是WordPress 3.0版(包含3.0.x版)要么删除“// Below is added in 3.1”及后面的 2 行代码,要么就是用3.0.x版的修改方法

本文固定链接: http://www.weisay.com/blog/close-wordpress-auto-draft.html | 威言威语

wordpress 4.4+关闭自动保存草稿功能:目前有53 条评论

  1. avatar
    27楼
    老姚 Maxthon Windows

    收藏了,打算把自己的博客也改一改,去掉自动保存这个没用的功能。

    2011-05-26 16:00 [回复]
  2. avatar
    26楼
    金刚 Google Chrome Windows

    其实自动保存功能挺好的~~
    留着无妨~~

    2011-05-24 09:48 [回复]
    • avatar
      William Mozilla Firefox Windows

      是的,不过我属于不喜欢的那类人,哈哈

      2011-05-25 23:45 [回复]
  3. avatar
    25楼
    wmtimes Google Chrome Windows

    没的到那一句话,或许是记错了。嘿嘿。

    2011-04-14 20:59 [回复]
    • avatar
      William Maxthon Windows

      嘿嘿~每个版本的修改貌似都不一样,这个有点小悲剧

      2011-04-15 17:16 [回复]
  4. avatar
    24楼
    VPS 世界之窗浏览器 Windows

    博主真心牛逼..博客设计的太漂亮了额。
    我想问一下你那个日志统计是插件还是什么呢?

    2011-04-13 00:48 [回复]
  5. avatar
    23楼
    阿德 Internet Explorer Windows

    WordPress 于我也许不会太远了

    2011-04-12 19:58 [回复]
    • avatar
      William Internet Explorer Windows

      额,可以啊,WP的确是很棒的

      2011-04-13 22:09 [回复]
  6. avatar
    22楼
    Paran Internet Explorer Windows

    换了头像啊
    这么可爱 哈哈

    2011-04-12 08:00 [回复]
    • avatar
      William Internet Explorer Windows

      很可爱,哈哈

      2011-04-13 22:08 [回复]
  7. avatar
    21楼
    奚少 Mozilla Firefox Windows

    我还是不关了,万一断电死机什么的,呵呵~

    2011-04-11 22:28 [回复]
    • avatar
      William Internet Explorer Windows

      我都是用记事本先写日志的。呵呵

      2011-04-13 22:08 [回复]
  8. avatar
    20楼
    木本无心 Safari Windows

    这个功能我觉得很好啊……

    2011-04-11 19:57 [回复]
    • avatar
      William Internet Explorer Windows

      个人喜好了

      2011-04-13 22:08 [回复]
  9. avatar
    19楼
    Allan Internet Explorer Windows

    主题不错,很漂亮

    2011-04-11 16:07 [回复]
  10. avatar
    18楼
    逝魂 Google Chrome Windows

    插件也可以 不过还是改代码好

    2011-04-11 10:23 [回复]
    • avatar
      William Internet Explorer Windows

      要干净,没有缓存,稍稍修改点代码还是能接受的

      2011-04-13 22:07 [回复]
  11. avatar
    17楼
    小星 Mozilla Firefox Windows

    还没升级保持在3.0,这个不用担心,偶用的非ID!

    2011-04-10 19:57 [回复]
  12. avatar
    16楼
    wusx Internet Explorer Windows

    怎么都有这种癖好

    2011-04-10 10:19 [回复]
  13. avatar
    15楼
    wmtimes Google Chrome Windows

    记得在function中加个函数就可以了。好像不用这么复杂。

    2011-04-10 00:20 [回复]
    • avatar
      William Internet Explorer Windows

      是么,没有发现哪种方法

      2011-04-13 22:07 [回复]
  14. avatar
    14楼
    wusx Internet Explorer Windows

    难道id 要一号一号这连连下来???

    2011-04-09 21:06 [回复]
    • avatar
      William Internet Explorer Windows

      Yes,必须的,ID不连续的话就觉得不舒服~

      2011-04-09 22:00 [回复]
      • avatar
        luchun0112 Maxthon Windows

        我也这么觉得。。曾经为了这个还修改过无数次数据库

        2011-04-10 00:14 [回复]
  15. avatar
    13楼
    Prouz Google Chrome Windows

    表示我对ID没有洁癖,哈哈!!
    不过貌似自动保存文章这个影响速度??
    很纠结、也懒得改啊!

    2011-04-09 15:49 [回复]
    • avatar
      William Internet Explorer Windows

      额,呵呵,每个人的想法不一样,很正常滴~

      2011-04-09 21:59 [回复]
  16. avatar
    12楼
    qiuyili Internet Explorer Windows

    技术活全让你给包了、对你的奉献表示赞许。

    2011-04-09 00:07 [回复]
    • avatar
      William Internet Explorer Windows

      哈哈,我是菜鸟,瞎折腾

      2011-04-09 21:58 [回复]
  17. avatar
    11楼
    顺水横流 Mozilla Firefox Windows

    最早在月光那里就看到过类似的文章了,不过我对ID的要求不高,另一方面也不会折腾,哈哈

    2011-04-08 23:36 [回复]
    • avatar
      William Internet Explorer Windows

      他那个早过时了,很多之前的修改方法都失效了

      2011-04-09 21:57 [回复]
  18. avatar
    10楼
    wusx Internet Explorer Windows

    我觉得 这个功能 平常是没用
    但是 万一一次 崩溃~ 就麻烦了

    2011-04-08 22:18 [回复]
    • avatar
      William Internet Explorer Windows

      我都是本地txt写好文章,然后才发布的,所以不担心这个~

      2011-04-09 21:56 [回复]
  19. avatar
    9楼
    海天 Google Chrome Windows

    额 我就没升级……

    2011-04-08 17:29 [回复]
    • avatar
      William Internet Explorer Windows

      额,貌似你还是用的2.9.2版的~

      2011-04-09 21:55 [回复]
  20. avatar
    8楼
    龙城瓶子 Google Chrome Windows

    那个在config文件里面设置的没效果了吗?

    2011-04-08 12:38 [回复]
    • avatar
      William Maxthon Windows

      是的,那个效果不好,我试了很多方法了,这个最好的

      2011-04-08 17:03 [回复]
  21. avatar
    7楼
    Paran Internet Explorer Windows

    改了wp文件的源文件 以后就很少敢升级了啊

    2011-04-08 09:17 [回复]
    • avatar
      William Maxthon Windows

      没有啊,以后升级了还是可以改的啊,基本3.1.x能通用了,以后升级或许就有新方法了

      2011-04-08 17:02 [回复]
  22. avatar
    6楼
    reizhi Google Chrome Windows

    没有在意过这个,保存就保存吧,我定期清理

    2011-04-08 03:10 [回复]
    • avatar
      William Maxthon Windows

      呵呵,你和我一样也没有用数字做标题,不过我还是希望ID连续的

      2011-04-08 17:01 [回复]
  23. avatar
    5楼
    Louis Han Mozilla Firefox Windows

    我不用后台 不过用optimize插件隔段时间清理下就好了

    2011-04-07 21:32 [回复]
    • avatar
      William Maxthon Windows

      呵呵,我只是想ID连续性,连续了也就没有缓存了~

      2011-04-08 16:59 [回复]
  24. avatar
    4楼
    下载.de Mozilla Firefox Windows

    我觉得自动备份是个好功能

    2011-04-07 19:56 [回复]
    • avatar
      William Maxthon Windows

      各人各爱好吧,其实功能是好的,就是他的代码逻辑不好,所以反感WP的自动保存

      2011-04-08 16:58 [回复]
  25. avatar
    地板
    sh2153 Google Chrome Windows

    請問站長你的代碼高亮插件是用哪一個呢?謝謝!!
    看來確定3.1.1可以用 這樣就會連續ID值了~

    2011-04-07 19:19 [回复]
    • avatar
      William Maxthon Windows

      代碼高亮插件:SyntaxHighlighter Evolved

      2011-04-08 16:56 [回复]
  26. avatar
    板凳
    不在回头 Internet Explorer Windows

    最近悲剧的事连连发生。

    2011-04-07 19:01 [回复]
    • avatar
      William Maxthon Windows

      淡定,挺挺就过去了

      2011-04-08 16:56 [回复]
  27. avatar
    沙发
    不在回头 Internet Explorer Windows

    搬家了。 因为备案的问题。 郁闷。 备案号被注销。 我是沙发。

    2011-04-07 18:50 [回复]
    • avatar
      William Mozilla Firefox Windows

      恩,3.31号左右好多人的备案被注销了,工信部最近查的紧~杯具

      2011-04-07 18:59 [回复]
      • 上下QQ 有点小事需要你帮忙下。

        2011-04-08 16:58 [回复]
        • avatar
          William Maxthon Windows

          上了~

          2011-04-08 17:10 [回复]

发表评论

question razz sad smile redface biggrin surprised eek confused cool lol mad rolleyes wink neutral cry

快捷键:Ctrl+Enter