﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
20168	How to: Avoid a bunch of useless Auto Draftt ID entries related in posts table and disable autosave feature in 'post-new.php'?	josoroma		"I got it! Buuuuut I had to edit 2 core files, yes! 2 core files :(

I know is not a cool plugin hack, but maybe a cool patch for WP, Im using 3.3.1 version.

Well, here is my little hack/contribution:
{{{
----------------------------------------
wp-admin/post-new.php
----------------------------------------

1 Comment:

//wp_enqueue_script('autosave');
2 Change:

$post = get_default_post_to_edit( $post_type, true );
$post_ID = $post->ID;
by:

$post       = array();
$post_ID    = 0;

----------------------------------------
wp-admin/post.php
----------------------------------------

1 Change:

if ( isset( $_GET['post'] ) )
    $post_id = $post_ID = (int) $_GET['post'];
elseif ( isset( $_POST['post_ID'] ) )
    $post_id = $post_ID = (int) $_POST['post_ID'];
else
    $post_id = $post_ID = 0;
by:

if ( isset( $_GET['post'] ) ) {

    $post_id = $post_ID = (int) $_GET['post'];

} elseif ( isset( $_POST['post_ID'] ) ) {

    if ( empty($_POST['post_ID']) ) {

        $post_type = wp_kses($_POST['post_type']);

        if( !post_type_exists($post_type) ) {

            $post_type = 'post';

        }

        check_admin_referer('update-' . $post_type . '_' . (int) $_POST['post_ID']);

        global $user_ID;

        $defaults = array(
                            'post_status'   => 'draft',
                            'post_type'     => $post_type,
                            'post_author'   => (int) $user_ID,
                    );

        $postarr    = wp_parse_args( $_POST, $defaults );

        $post_ID    = wp_insert_post($postarr);

        $post_id    =  (int) $post_ID;

        redirect_post($post_id);

        exit;   

    } else {

        $post_id = $post_ID = (int) $_POST['post_ID'];

    }



} else {

    $post_id = $post_ID = 0;

}
}}}
I am using JQuery to hide: add media stuff. Just only a unique ID entry is created in posts table (and not a bunch of useless Auto Draft entries related) and media stuff will be visible after user manually saves current post.

Rare behavior: When a user logins for the first time and is redirected to Dashboard, WP creates an Auto Draft entry in posts table, hmmm, crazy! Somebody knows why it works like that?

A better solution: perhaps not altering at any chance core files? It will be a great one! For example, with a checkbox in Settings-->Writing to check or uncheck if we want the ""autosave"" feature or not. Somebody else wants to apply this patch?

Thanks in advance."	enhancement	closed	normal		General	3.3.1	normal	invalid		
