清理博客缓存

原型

clean_blog_cache( WP_Site|int $blog )

参数

$blog (WP_Site|int) (Required) 要从缓存中清除的站点对象或ID。

源文件

路径:wp-includes/ms-blogs.php

<?php
...
function clean_blog_cache( $blog ) {
	global $_wp_suspend_cache_invalidation;
	if ( ! empty( $_wp_suspend_cache_invalidation ) ) {
		return;
	}
	if ( empty( $blog ) ) {
		return;
	}
	$blog_id = $blog;
	$blog = get_site( $blog_id );
	if ( ! $blog ) {
		if ( ! is_numeric( $blog_id ) ) {
			return;
		}
		// Make sure a WP_Site object exists even when the site has been deleted.
		$blog = new WP_Site( (object) array(
			'blog_id' => $blog_id,
			'domain'  => null,
			'path'    => null,
		) );
	}
	$blog_id = $blog->blog_id;
	$domain_path_key = md5( $blog->domain . $blog->path );
	wp_cache_delete( $blog_id, 'sites' );
	wp_cache_delete( $blog_id, 'site-details' );
	wp_cache_delete( $blog_id, 'blog-details' );
	wp_cache_delete( $blog_id . 'short' , 'blog-details' );
	wp_cache_delete( $domain_path_key, 'blog-lookup' );
	wp_cache_delete( $domain_path_key, 'blog-id-cache' );
	wp_cache_delete( 'current_blog_' . $blog->domain, 'site-options' );
	wp_cache_delete( 'current_blog_' . $blog->domain . $blog->path, 'site-options' );
	/**
	 * Fires immediately after a site has been removed from the object cache.
	 *
	 * @since 4.6.0
	 *
	 * @param int     $id              Blog ID.
	 * @param WP_Site $blog            Site object.
	 * @param string  $domain_path_key md5 hash of domain and path.
	 */
	do_action( 'clean_site_cache', $blog_id, $blog, $domain_path_key );
	wp_cache_set( 'last_changed', microtime(), 'sites' );
	/**
	 * Fires after the blog details cache is cleared.
	 *
	 * @since 3.4.0
	 * @deprecated 4.9.0 Use clean_site_cache
	 *
	 * @param int $blog_id Blog ID.
	 */
	do_action_deprecated( 'refresh_blog_details', array( $blog_id ), '4.9.0', 'clean_site_cache' );
}
...
?>

其他

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