MENU

clean_page_cache()

clean_page_cache() は、特定の固定ページ(page 投稿タイプ)のキャッシュを削除するための内部関数です。

WordPress ではページデータの表示速度を上げるために投稿オブジェクトのキャッシュを使用していますが、ページの内容やメタ情報を更新した場合、キャッシュが残ったままだと古いデータが表示される可能性があります。

この関数を使うことで、指定した固定ページのキャッシュを明示的に削除し、常に最新の状態を保つことができます。

目次

基本構文

clean_page_cache( $page );

$page:キャッシュを削除したい固定ページの ID または WP_Post オブジェクト

引き数と戻り値

スクロールできます
引き数説明
$page`intWP_Post`
スクロールできます
戻り値説明
なし副作用としてキャッシュを削除する(戻り値なし)

使用例

タグを使った使用例

$page_id = 42;
clean_page_cache( $page_id );

固定ページ(ID: 42)に関するキャッシュ(オブジェクトキャッシュ、パーマリンク、メタ情報など)を削除します。

または WP_Post オブジェクトを使う場合:

$page = get_post( 42 );
clean_page_cache( $page );

注意点

投稿タイプが page である必要がある

post や他のカスタム投稿タイプには適用されません。post 用には clean_post_cache() を使う必要があります。

キャッシュオブジェクトが無効な環境では効果が限定的

オブジェクトキャッシュが有効でない場合、再取得の恩恵は少ない場合もあります。

WP 内部的に呼び出されるケースが多く、通常は手動で呼ぶ必要は少ない

ただし、独自の投稿更新処理やバルク操作時には手動実行が有効です。

よく一緒に使われる関数

wp_update_post()

$post_id = 42;
wp_update_post( [ 'ID' => $post_id, 'post_title' => '新しいタイトル' ] );
clean_page_cache( $post_id );

ページ内容を更新した後、キャッシュを明示的にクリアして反映。

get_post()

$page = get_post( 42 );
clean_page_cache( $page );

WP_Post オブジェクト取得後にキャッシュクリア。

clean_post_cache()

clean_post_cache( 42 );

通常の投稿用キャッシュクリア。clean_page_cache() との違いに注意。

想定されるトラブル

ページ編集後に反映されない

キャッシュが残っていて、更新内容が表示されない。

解決方法

clean_page_cache() を手動で実行するか、編集後にフックで自動削除を行う。

カスタムテンプレートや条件分岐が古い情報で動作する

テンプレート変更などのデータがキャッシュされている可能性。

解決方法

ページ編集時に clean_page_cache() を併用してキャッシュ整合性を保つ。

Q&A

この関数は通常の投稿でも使えますか?

いいえ、page 投稿タイプ専用です。post には clean_post_cache() を使ってください。

一度に複数のページのキャッシュを削除できますか?

いいえ。ループなどで個別に呼び出す必要があります。

フックと一緒に使う場面はありますか?

save_post_pagewp_insert_post にフックして、保存時にキャッシュクリア処理を行うことがあります。

まとめ

clean_page_cache() は、固定ページに関するキャッシュをクリアして、常に最新の状態を表示させるための便利な関数です。

自動でキャッシュがクリアされない状況や、開発時の手動制御が必要な場面で役立ちます。特にページ関連のカスタマイズを行うプラグインやテーマ開発では、安全性と反映の即時性を担保するために活用しましょう。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次