威言威语
我愿像茶,苦涩留心,清香予人。
威言威语
当前位置: 首页 > 设计 > 正文

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

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

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版的修改方法

您可能还会对这些文章感兴趣!

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

  1. 落英缤纷
    29楼
    落英缤纷:Google Chrome 78.0.3904.108 Windows 7

    转走了,避免失效

    2020-11-28 13:39 回复
  2. 落英缤纷
    28楼
    落英缤纷:Google Chrome 78.0.3904.108 Windows 7

    牛逼 搜索整个网络 就这个对

    2020-07-19 20:54 回复
  3. 老姚
    27楼
    老姚:傲游浏览器 2.0 Windows 7

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

    2011-05-26 16:00 回复
  4. 金刚
    26楼
    金刚:Google Chrome 12.0.742.30 Windows 7

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

    2011-05-24 09:48 回复
  5. wmtimes
    25楼
    wmtimes:Google Chrome 12.0.725.0 Windows 7

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

    2011-04-14 20:59 回复
    • William
      William傲游浏览器 2.0 Windows XP

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

      2011-04-15 17:16 回复
  6. VPS
    24楼
    VPS:世界之窗浏览器 Windows 7

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

    2011-04-13 00:48 回复
  7. 阿德
    23楼
    阿德:Internet Explorer 9.0 Windows 7

    WordPress 于我也许不会太远了

    2011-04-12 19:58 回复
  8. Paran
    22楼
    Paran:Internet Explorer 9.0 Windows 7

    换了头像啊
    这么可爱 哈哈

    2011-04-12 08:00 回复
  9. 奚少
    21楼
    奚少:Firefox 4.0 Windows 7

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

    2011-04-11 22:28 回复

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

gravatar

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