Make WordPress Core

Ticket #56279: 56279.diff

File 56279.diff, 2.1 KB (added by SergeyBiryukov, 2 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_last_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['revision'],
    14691469                                '__back_compat_meta_box' => true,
    14701470                        );
    14711471
  • src/wp-includes/revision.php

     
    584584 * @since 5.9.0
    585585 *
    586586 * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global `$post`.
    587  * @return null|string The URL for editing revisions on the given post, otherwise null.
     587 * @return string|null The URL for editing revisions on the given post, otherwise null.
    588588 */
    589589function wp_get_post_revisions_url( $post = 0 ) {
    590590        $post = get_post( $post );
     
    602602                return null;
    603603        }
    604604
    605         $revisions = wp_get_post_revisions( $post->ID, array( 'posts_per_page' => 1 ) );
     605        $revisions = wp_get_last_revision_id_and_total_count( $post->ID );
    606606
    607         if ( 0 === count( $revisions ) ) {
     607        if ( is_wp_error( $revisions ) || 0 === $revisions['count'] ) {
    608608                return null;
    609609        }
    610610
    611         $revision = reset( $revisions );
    612         return get_edit_post_link( $revision );
     611        $last_revision = $revisions['revision'];
     612;
     613        return get_edit_post_link( $last_revision );
    613614}
    614615
    615616/**