clean_post_cache() │ WP 2.0.0
Will clean the post in the cache.
Cleaning means delete from the cache of the post. Will call to clean the term object cache associated with the post ID.
This function not run if $_wp_suspend_cache_invalidation is not empty. See wp_suspend_cache_invalidation().
Return
null
. Nothing (null).
Usage
clean_post_cache( $post );
- $post(int|WP_Post) (required)
- Post ID or post object to remove from the cache.
Examples
#1 Delete post object cache
Let's say we're editing post 25 and we need to clear it's object cache:
$id = 25;
clean_post_cache( $id );
Notes
- Global. true|false. $_wp_suspend_cache_invalidation
Changelog
clean_post_cache() clean post cache code
WP 6.7.1
function clean_post_cache( $post ) {
global $_wp_suspend_cache_invalidation;
if ( ! empty( $_wp_suspend_cache_invalidation ) ) {
return;
}
$post = get_post( $post );
if ( ! $post ) {
return;
}
wp_cache_delete( $post->ID, 'posts' );
wp_cache_delete( 'post_parent:' . (string) $post->ID, 'posts' );
wp_cache_delete( $post->ID, 'post_meta' );
clean_object_term_cache( $post->ID, $post->post_type );
wp_cache_delete( 'wp_get_archives', 'general' );
/**
* Fires immediately after the given post's cache is cleaned.
*
* @since 2.5.0
*
* @param int $post_id Post ID.
* @param WP_Post $post Post object.
*/
do_action( 'clean_post_cache', $post->ID, $post );
if ( 'page' === $post->post_type ) {
wp_cache_delete( 'all_page_ids', 'posts' );
/**
* Fires immediately after the given page's cache is cleaned.
*
* @since 2.5.0
*
* @param int $post_id Post ID.
*/
do_action( 'clean_page_cache', $post->ID );
}
wp_cache_set_posts_last_changed();
}
Related Functions