diff --git a/wp-includes/post-thumbnail-template.php b/wp-includes/post-thumbnail-template.php index e801d53a97..7d722ae9de 100644 --- a/wp-includes/post-thumbnail-template.php +++ b/wp-includes/post-thumbnail-template.php @@ -112,8 +112,25 @@ function update_post_thumbnail_cache( $wp_query = null ) { $thumb_ids = array(); + /* + * $wp_query may contain an array of post objects or post IDs. + * + * This ensures the cache is primed for all post objects to avoid + * `get_post()` calls in `get_the_post_thumbnail()` triggering an + * additional database call for each post. + */ + $parent_post_ids = array(); foreach ( $wp_query->posts as $post ) { - $id = get_post_thumbnail_id( $post->ID ); + if ( $post instanceof WP_Post ) { + $parent_post_ids[] = $post->ID; + } elseif ( is_int( $post ) ) { + $parent_post_ids[] = $post; + } + } + _prime_post_caches( $parent_post_ids, false, true ); + + foreach ( $wp_query->posts as $post ) { + $id = get_post_thumbnail_id( $post ); if ( $id ) { $thumb_ids[] = $id; } diff --git a/wp-includes/version.php b/wp-includes/version.php index b17164629c..b2d113e860 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.7-beta2-59234'; +$wp_version = '6.7-beta2-59235'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.