diff --git a/wp-admin/includes/ajax-actions.php b/wp-admin/includes/ajax-actions.php index 74c48057c9..35b697ca17 100644 --- a/wp-admin/includes/ajax-actions.php +++ b/wp-admin/includes/ajax-actions.php @@ -2130,6 +2130,9 @@ function wp_ajax_revisions_data() { if ( 0 != $single_revision_id ) { $right_revision = get_post( $single_revision_id ); + if ( 0 == $compare_to ) + $left_revision = get_post( $post_id ); + // make sure the right revision is the most recent if ( $compare_two_mode && $right_revision->ID < $left_revision->ID ) { $temp = $left_revision; @@ -2155,7 +2158,8 @@ function wp_ajax_revisions_data() { if ( ! empty( $show_split_view ) ) $args = array( 'show_split_view' => true ); - $diff = wp_text_diff_with_count( $left_content, $right_content, $args ); + // compare_to == 0 means first revision, so compare to a blank field to show whats changed + $diff = wp_text_diff_with_count( ( 0 == $compare_to) ? '' : $left_content, $right_content, $args ); if ( isset( $diff[ 'html' ] ) ) $content .= $diff[ 'html' ]; @@ -2185,6 +2189,7 @@ function wp_ajax_revisions_data() { $revisions = array_reverse( $revisions ); $previous_revision_id = 0; + foreach ( $revisions as $revision ) : //error_log( ( $show_autosaves )); if ( empty( $show_autosaves ) && wp_is_post_autosave( $revision ) ) @@ -2269,7 +2274,7 @@ function wp_ajax_revisions_data() { $revision_from_date_author = $revision_date_author; $revision_date_author = $tmp; } - if ( ( $compare_two_mode || 0 !== $previous_revision_id ) ) { + if ( ( $compare_two_mode || -1 !== $previous_revision_id ) ) { $alltherevisions[] = array ( 'ID' => $revision->ID, 'revision_date_author' => $revision_date_author, diff --git a/wp-admin/js/revisions.js b/wp-admin/js/revisions.js index 6ac4b86e9e..305919869e 100644 --- a/wp-admin/js/revisions.js +++ b/wp-admin/js/revisions.js @@ -424,19 +424,22 @@ window.wp = window.wp || {}; // render the revisions render: function() { var addHtml = ''; + var thediff; // compare two revisions mode? if ( 2 === REVAPP._compareOneOrTwo ) { + this.comparetwochecked = 'checked'; if ( this.draggingLeft ) { - if ( this.model.at( REVAPP._leftDiff ) ) { + thediff = REVAPP._leftDiff -1; + if ( this.model.at( thediff ) ) { addHtml = this.template( _.extend( - this.model.at( REVAPP._leftDiff ).toJSON(), + this.model.at( thediff ).toJSON(), { comparetwochecked: this.comparetwochecked } // keep the checkmark checked ) ); } } else { // dragging right handle - var thediff = REVAPP._rightDiff; + thediff = REVAPP._rightDiff -1; if ( this.model.at( thediff ) ) { addHtml = this.template( _.extend( this.model.at( thediff ).toJSON(), diff --git a/wp-includes/post-template.php b/wp-includes/post-template.php index 1bd0c6736c..41b3096491 100644 --- a/wp-includes/post-template.php +++ b/wp-includes/post-template.php @@ -1426,7 +1426,7 @@ function wp_list_post_revisions( $post_id = 0, $args = null ) { // The following removes that revision when $parent == false $parent_included = _wp_last_revision_matches_current_post( $post_id ); if ( $parent_included && ! $parent ) - array_pop( $revisions ); + array_shift( $revisions ); elseif ( ! $parent_included && $parent ) array_unshift( $revisions, $post ); @@ -1436,7 +1436,7 @@ function wp_list_post_revisions( $post_id = 0, $args = null ) { foreach ( $revisions as $revision ) { if ( !current_user_can( 'read_post', $revision->ID ) ) continue; - + $is_autosave = wp_is_post_autosave( $revision ); if ( ( 'revision' === $type && $is_autosave ) || ( 'autosave' === $type && ! $is_autosave ) ) continue;