调用Post对象列表的主要缓存更新函数。

原型

update_post_caches( array $posts, string $post_type = 'post', bool $update_term_cache = true, bool $update_meta_cache = true )

参数

$posts (array) (Required) Post对象的数组

$post_type (string) (Optional)  发布类型。

$update_term_cache (bool) (Optional)  是否更新术语缓存。

$update_meta_cache (bool) (Optional)  是否更新元缓存。

源文件

路径:wp-includes/post.php

<?php
...
function update_post_caches( &$posts, $post_type = 'post', $update_term_cache = true, $update_meta_cache = true ) {
	// No point in doing all this work if we didn't match any posts.
	if ( !$posts )
		return;
	update_post_cache($posts);
	$post_ids = array();
	foreach ( $posts as $post )
		$post_ids[] = $post->ID;
	if ( ! $post_type )
		$post_type = 'any';
	if ( $update_term_cache ) {
		if ( is_array($post_type) ) {
			$ptypes = $post_type;
		} elseif ( 'any' == $post_type ) {
			$ptypes = array();
			// Just use the post_types in the supplied posts.
			foreach ( $posts as $post ) {
				$ptypes[] = $post->post_type;
			}
			$ptypes = array_unique($ptypes);
		} else {
			$ptypes = array($post_type);
		}
		if ( ! empty($ptypes) )
			update_object_term_cache($post_ids, $ptypes);
	}
	if ( $update_meta_cache )
		update_postmeta_cache($post_ids);
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/update_post_caches/