WordPress.org

Make WordPress Core

Changeset 20453


Ignore:
Timestamp:
04/12/12 18:49:48 (2 years ago)
Author:
ryan
Message:

Schedule auto-draft deletion from post-new.php instead of from admin.php. This provides better throttling for large multisite installs and reduces the risk of a delete avalanche.

fixes #19663

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/post-new.php

    r19712 r20453  
    4040    wp_die( __( 'Cheatin’ uh?' ) ); 
    4141 
     42// Schedule auto-draft cleanup 
     43if ( ! wp_next_scheduled( 'wp_scheduled_auto_draft_delete' ) ) 
     44    wp_schedule_event( time(), 'daily', 'wp_scheduled_auto_draft_delete' ); 
     45 
    4246wp_enqueue_script('autosave'); 
    4347 
  • trunk/wp-includes/default-filters.php

    r20234 r20453  
    254254add_action( 'comment_form',               'wp_comment_form_unfiltered_html_nonce'          ); 
    255255add_action( 'wp_scheduled_delete',        'wp_scheduled_delete'                            ); 
     256add_action( 'wp_scheduled_auto_draft_delete', 'wp_delete_auto_drafts'                      ); 
    256257add_action( 'admin_init',                 'send_frame_options_header',               10, 0 ); 
    257258add_action( 'importer_scheduled_cleanup', 'wp_delete_attachment'                           ); 
  • trunk/wp-includes/functions.php

    r20449 r20453  
    33093309/** 
    33103310 * Permanently deletes posts, pages, attachments, and comments which have been in the trash for EMPTY_TRASH_DAYS. 
    3311  * Deletes auto-drafts for new posts that are > 7 days old 
    33123311 * 
    33133312 * @since 2.9.0 
     
    33513350        } 
    33523351    } 
    3353  
    3354     // Cleanup old auto-drafts more than 7 days old 
    3355     $old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" ); 
    3356     foreach ( (array) $old_posts as $delete ) 
    3357         wp_delete_post( $delete, true ); // Force delete 
    33583352} 
    33593353 
  • trunk/wp-includes/post.php

    r20435 r20453  
    51655165 
    51665166/** 
     5167 * Deletes auto-drafts for new posts that are > 7 days old 
     5168 * 
     5169 * @since 3.4.0 
     5170 */ 
     5171function wp_delete_auto_drafts() { 
     5172    global $wpdb; 
     5173 
     5174    // Cleanup old auto-drafts more than 7 days old 
     5175    $old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" ); 
     5176    foreach ( (array) $old_posts as $delete ) 
     5177        wp_delete_post( $delete, true ); // Force delete 
     5178} 
     5179 
     5180/** 
    51675181 * Filters the request to allow for the format prefix. 
    51685182 * 
Note: See TracChangeset for help on using the changeset viewer.