Make WordPress Core


Ignore:
Timestamp:
10/21/2025 03:31:55 AM (5 months ago)
Author:
peterwilsoncc
Message:

REST API: Improve performance of X-WP-Total/X-WP-TotalPages queries.

Improve the performance of fallback queries to determine the total number of objects available on various REST endpoints for out of bounds queries.

The database queries are modified to return the minimum amount of data required for determining the count and bypass priming of meta a term caches where appropriate.

Props adamsilverstein, joehoyle, johnbillion, jorbin, kadamwhite, spacedmonkey, sukhendu2002, westonruter.
Fixes #62801.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php

    r59970 r61002  
    309309
    310310            if ( $total_revisions < 1 ) {
    311                 // Out-of-bounds, run the query again without LIMIT for total count.
     311                // Out-of-bounds, run the query without pagination/offset to get the total count.
    312312                unset( $query_args['paged'], $query_args['offset'] );
    313313
    314                 $count_query = new WP_Query();
     314                $count_query                          = new WP_Query();
     315                $query_args['fields']                 = 'ids';
     316                $query_args['posts_per_page']         = 1;
     317                $query_args['update_post_meta_cache'] = false;
     318                $query_args['update_post_term_cache'] = false;
     319
    315320                $count_query->query( $query_args );
    316 
    317321                $total_revisions = $count_query->found_posts;
    318322            }
Note: See TracChangeset for help on using the changeset viewer.