Make WordPress Core

Ticket #56279: 56279.3.diff

File 56279.3.diff, 2.2 KB (added by SergeyBiryukov, 4 years ago)
  • src/wp-admin/includes/meta-boxes.php

     
    14591459        $publish_callback_args = array( '__back_compat_meta_box' => true );
    14601460
    14611461        if ( post_type_supports( $post_type, 'revisions' ) && 'auto-draft' !== $post->post_status ) {
    1462                 $revisions = wp_get_post_revisions( $post->ID, array( 'fields' => 'ids' ) );
     1462                $revisions = wp_get_latest_revision_id_and_total_count( $post->ID );
    14631463
    14641464                // We should aim to show the revisions meta box only when there are revisions.
    1465                 if ( count( $revisions ) > 1 ) {
     1465                if ( ! is_wp_error( $revisions ) && $revisions['count'] > 1 ) {
    14661466                        $publish_callback_args = array(
    1467                                 'revisions_count'        => count( $revisions ),
    1468                                 'revision_id'            => reset( $revisions ),
     1467                                'revisions_count'        => $revisions['count'],
     1468                                'revision_id'            => $revisions['latest_id'],
    14691469                                '__back_compat_meta_box' => true,
    14701470                        );
    14711471
  • src/wp-includes/revision.php

     
    603603                return null;
    604604        }
    605605
    606         $revisions = wp_get_post_revisions( $post->ID, array( 'posts_per_page' => 1 ) );
     606        $revisions = wp_get_latest_revision_id_and_total_count( $post->ID );
    607607
    608         if ( 0 === count( $revisions ) ) {
     608        if ( is_wp_error( $revisions ) || 0 === $revisions['count'] ) {
    609609                return null;
    610610        }
    611611
    612         $revision = reset( $revisions );
    613         return get_edit_post_link( $revision );
     612        return get_edit_post_link( $revisions['latest_id'] );
    614613}
    615614
    616615/**
  • src/wp-includes/theme.php

     
    20682068                        }
    20692069
    20702070                        // Trigger creation of a revision. This should be removed once #30854 is resolved.
    2071                         if ( 0 === count( wp_get_post_revisions( $r ) ) ) {
     2071                        $revisions = wp_get_latest_revision_id_and_total_count( $r );
     2072                        if ( ! is_wp_error( $revisions ) && 0 === $revisions['count'] ) {
    20722073                                wp_save_post_revision( $r );
    20732074                        }
    20742075                }