clean_post_cache

函式
clean_post_cache ( $post )
引數
  • (int|WP_Post) $post Post ID or post object to remove from the cache.
    Required:
定義位置
相關方法
clean_user_cacheclean_term_cacheclean_page_cacheclean_blog_cacheclean_comment_cache
引入
2.0.0
棄用
-

clean_post_cache: 這個函式清除了文章的快取。文章是WordPress中的單個內容,是部落格流的一部分: 當這個函式被呼叫時,它清除了所有文章資料的快取。

將清理快取中的文章。

清理意味著從文章的快取中刪除。將呼叫清理與文章ID相關的術語物件快取。

如果$_wp_suspend_cache_invalidation不是空的,這個函式不會執行。參見wp_suspend_cache_invalidation()。

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->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( 'last_changed', microtime(), 'posts' );
}

常見問題

FAQs
檢視更多 >