update_post_caches( array $posts, string $post_type = 'post', bool $update_term_cache = true, bool $update_meta_cache = true )
Call major cache updating functions for list of Post objects.
Parameters
- $posts
-
(Required) Array of Post objects
- $post_type
-
(Optional) Post type. Default 'post'.
Default value: 'post'
- $update_term_cache
-
(Optional) Whether to update the term cache.
Default value: true
- $update_meta_cache
-
(Optional) Whether to update the meta cache.
Default value: true
Source
File: wp-includes/post.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);
}
Changelog
Version | Description |
---|---|
WP-1.5.0 | Introduced. |