WordPress.org

Make WordPress Core

Ticket #7392: 7392.4.patch

File 7392.4.patch, 1.5 KB (added by ethitter, 7 years ago)
  • wp-admin/includes/post.php

     
    12961296 * @subpackage Post_Revisions
    12971297 * @since 2.6.0
    12981298 *
     1299 * @uses get_post()
    12991300 * @uses _wp_translate_postdata()
     1301 * @uses is_wp_error()
     1302 * @uses get_current_user_id()
     1303 * @uses wp_get_post_autosave()
    13001304 * @uses _wp_post_revision_fields()
     1305 * @uses apply_filters()
     1306 * @uses normalize_whitespace()
     1307 * @uses wp_update_post()
     1308 * @uses wp_unslash()
     1309 * @uses _wp_put_post_revision()
    13011310 *
    1302  * @return unknown
     1311 * @return mixed
    13031312 */
    13041313function wp_create_post_autosave( $post_id ) {
     1314        if ( ! $post = get_post( $post_id ) )
     1315                return;
     1316
    13051317        $translated = _wp_translate_postdata( true );
    13061318        if ( is_wp_error( $translated ) )
    13071319                return $translated;
     
    13141326                $new_autosave['ID'] = $old_autosave->ID;
    13151327                $new_autosave['post_author'] = $post_author;
    13161328
     1329                // Check if post content has changed before autosaving
     1330                if ( is_array( $new_autosave ) && apply_filters( 'wp_save_post_revision_check_for_changes', true, $post, $new_autosave ) ) {
     1331                        $post_has_changed = false;
     1332
     1333                        foreach ( array_keys( _wp_post_revision_fields() ) as $field ) {
     1334                                if ( normalize_whitespace( $new_autosave[ $field ] ) != normalize_whitespace( $post->{$field} ) ) {
     1335                                        $post_has_changed = true;
     1336                                        break;
     1337                                }
     1338                        }
     1339
     1340                        // Don't save anything new if post is unchanged
     1341                        if ( ! $post_has_changed )
     1342                                return;
     1343                }
     1344
    13171345                return wp_update_post( $new_autosave );
    13181346        }
    13191347