#20168 closed enhancement (invalid)
How to: Avoid a bunch of useless Auto Draftt ID entries related in posts table and disable autosave feature in 'post-new.php'?
Reported by: |
|
Owned by: | |
---|---|---|---|
Milestone: | Priority: | normal | |
Severity: | normal | Version: | 3.3.1 |
Component: | General | Keywords: | |
Focuses: | Cc: |
Description (last modified by )
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.
And for anyone who has come across this, Please don't re-open it, Instead, if you have a better solution, create a new ticket detailing the pro's and cons of that method.
Required reading priot to that however: The wp-hackers thread that led to this ticket: http://lists.automattic.com/pipermail/wp-hackers/2012-February/042398.html Otto's posts in that thread in particular ( 1 2 and 3) as well as the prior tickets: #11889, #11145, #11990
Auto-drafts were added to solve a real problem and provide the best User-Experience we can possibly do, they serve a real purpose, even if you don't physically see it, they work in the background to make your publishing dream come true. They are automatically Garbage-collected, so you will not have a extreme number in your database forever.