clean_category_cache()
は、指定した投稿 ID に関連付けられているカテゴリーのキャッシュを削除するための WordPress 関数です。
カテゴリーの変更(追加・削除)やターム関連の更新後にこの関数を使うことで、get_the_category()
などで取得される情報が正しく最新の状態になります。表示や処理が古いデータに基づいて行われるのを防ぐ重要な役割を持ちます。
基本構文
clean_category_cache( $post_id );
$post_id
に指定した投稿のカテゴリーに関するキャッシュを削除します。- 主に
get_the_category()
によって取得される情報の再取得を促します。 - 自動的には削除されない場合の手動キャッシュ削除に使用されます。
引き数と戻り値
引き数 | 型 | 説明 |
---|---|---|
$post_id | int | キャッシュを削除したい投稿の ID |
戻り値 | 型 | 説明 |
---|---|---|
なし(void ) | ― | 副作用的な処理で戻り値はなし |
使用例
タグを使った使用例
$post_id = 123;
clean_category_cache( $post_id );
投稿 ID「123」に関連付けられたカテゴリー情報のキャッシュを削除します。この後に get_the_category( 123 )
を使用すると、常に最新のカテゴリー情報が取得されます。
注意点
clean_category_cache()
は投稿に対して直接関連するカテゴリーのキャッシュのみを削除します。- カスタムタクソノミーのキャッシュには影響しません。そちらには
clean_object_term_cache()
を使用してください。 - 投稿にカテゴリーを追加・削除した際に自動的にキャッシュがクリアされるとは限らないため、確実性を求める場合は手動で呼び出すと安全です。
よく一緒に使われる関数
get_the_category()
$categories = get_the_category( $post_id );
投稿に紐づくカテゴリー情報を取得します。clean_category_cache()
を先に使うことで正確な情報が得られます。
wp_set_post_categories()
wp_set_post_categories( $post_id, [2, 4] );
clean_category_cache( $post_id );
投稿のカテゴリーを変更した後、キャッシュをクリアして表示内容を更新。
clean_object_term_cache()
clean_object_term_cache( $post_id, 'category' );
より汎用的なタクソノミーキャッシュ削除関数。カテゴリー以外にも使用可能。
想定されるトラブル
カテゴリー変更がすぐに反映されない
キャッシュが更新されていないため、古いカテゴリーが表示されることがあります。
解決方法
カテゴリー変更後に clean_category_cache()
を明示的に呼び出してキャッシュを削除する。
get_the_category()
の結果が意図しない
キャッシュが残っていることで、古いデータを返している可能性がある。
解決方法
デバッグ時に clean_category_cache()
を使ってキャッシュを強制クリアし、意図したデータを取得する。
Q&A
まとめ
clean_category_cache()
は、WordPress で投稿に関連付けられたカテゴリー情報のキャッシュを削除するための関数です。
カテゴリーを更新・追加・削除した際に、確実に最新情報を反映させたい場合に使われます。正確なカテゴリー情報を常に扱うためにも、特に動的なカテゴリー操作を行う開発時には重要な役割を果たします。
コメント