Make WordPress Core

Ticket #7392: dont-save-autosave.2.diff

File dont-save-autosave.2.diff, 1.3 KB (added by adamsilverstein, 12 years ago)

adds check in wp_create_post_autosave for duplicate content

  • wp-admin/includes/post.php

     
    12671267 * @return unknown
    12681268 */
    12691269function wp_create_post_autosave( $post_id ) {
     1270        if ( ! $post = get_post( $post_id ) )
     1271                return;
     1272
    12701273        $translated = _wp_translate_postdata( true );
    12711274        if ( is_wp_error( $translated ) )
    12721275                return $translated;
    12731276
    12741277        $post_author = get_current_user_id();
    12751278
     1279
    12761280        // Store one autosave per author. If there is already an autosave, overwrite it.
    12771281        if ( $old_autosave = wp_get_post_autosave( $post_id, $post_author ) ) {
    12781282                $new_autosave = _wp_post_revision_fields( $_POST, true );
    12791283                $new_autosave['ID'] = $old_autosave->ID;
    12801284                $new_autosave['post_author'] = $post_author;
     1285                if ( apply_filters( 'wp_save_post_revision_check_for_changes', true, $post, $new_data ) && is_array( $new_data ) ) {
     1286                        $post_has_changed = false;
     1287                        foreach ( array_keys( _wp_post_revision_fields() ) as $field ) {
     1288                                if ( normalize_whitespace( $new_autosave[ $field ] ) != normalize_whitespace( $post[ $field ] ) ) {
     1289                                        $post_has_changed = true;
     1290                                        break;
     1291                                }
     1292                        }
     1293                //don't save revision if post unchanged
     1294                if( ! $post_has_changed )
     1295                        return;
     1296        }
     1297
     1298
    12811299                return wp_update_post( $new_autosave );
    12821300        }
    12831301