clean_page_cache()
は、特定の固定ページ(page
投稿タイプ)のキャッシュを削除するための内部関数です。
WordPress ではページデータの表示速度を上げるために投稿オブジェクトのキャッシュを使用していますが、ページの内容やメタ情報を更新した場合、キャッシュが残ったままだと古いデータが表示される可能性があります。
この関数を使うことで、指定した固定ページのキャッシュを明示的に削除し、常に最新の状態を保つことができます。
基本構文
clean_page_cache( $page );
$page
:キャッシュを削除したい固定ページの ID または WP_Post
オブジェクト
引き数と戻り値
引き数 | 型 | 説明 |
---|---|---|
$page | `int | WP_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
まとめ
clean_page_cache()
は、固定ページに関するキャッシュをクリアして、常に最新の状態を表示させるための便利な関数です。
自動でキャッシュがクリアされない状況や、開発時の手動制御が必要な場面で役立ちます。特にページ関連のカスタマイズを行うプラグインやテーマ開発では、安全性と反映の即時性を担保するために活用しましょう。
コメント