WordPress.org

Make WordPress Core

Changeset 20453


Ignore:
Timestamp:
04/12/2012 06:49:48 PM (10 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.