diff --git src/wp-includes/post.php src/wp-includes/post.php
index 4ce2ac1..f67e721 100644
--- src/wp-includes/post.php
+++ src/wp-includes/post.php
@@ -6029,6 +6029,7 @@ function wp_delete_auto_drafts() {
  */
 function wp_queue_posts_for_term_meta_lazyload( $posts ) {
 	$post_type_taxonomies = $term_ids = array();
+	$cache_keys = array();
 	foreach ( $posts as $post ) {
 		if ( ! ( $post instanceof WP_Post ) ) {
 			continue;
@@ -6039,14 +6040,28 @@ function wp_queue_posts_for_term_meta_lazyload( $posts ) {
 		}
 
 		foreach ( $post_type_taxonomies[ $post->post_type ] as $taxonomy ) {
-			// Term cache should already be primed by `update_post_term_cache()`.
-			$terms = get_object_term_cache( $post->ID, $taxonomy );
-			if ( false !== $terms ) {
-				foreach ( $terms as $term ) {
-					if ( ! isset( $term_ids[ $term->term_id ] ) ) {
-						$term_ids[] = $term->term_id;
-					}
-				}
+			if ( ! isset( $cache_keys[ "{$taxonomy}_relationships" ] ) ) {
+				$cache_keys[ "{$taxonomy}_relationships" ] = array();
+			}
+
+			// Force uniqueness by overwriting key.
+			$cache_keys[ "{$taxonomy}_relationships" ][ $post->ID ] = $post->ID;
+		}
+	}
+
+	if ( ! $cache_keys ) {
+		return;
+	}
+
+	$cached_values = wp_cache_get_multi( $cache_keys );
+	foreach ( $cached_values as $tax_cache_group => $cached_posts ) {
+		foreach ( $cached_posts as $post_id => $cached_post_term_ids ) {
+			if ( false === $cached_post_term_ids ) {
+				continue;
+			}
+
+			foreach ( $cached_post_term_ids as $term_id ) {
+				$term_ids[ $term_id ] = $term_id;
 			}
 		}
 	}
