MENU

clean_category_cache()

clean_category_cache() は、指定した投稿 ID に関連付けられているカテゴリーのキャッシュを削除するための WordPress 関数です。

カテゴリーの変更(追加・削除)やターム関連の更新後にこの関数を使うことで、get_the_category() などで取得される情報が正しく最新の状態になります。表示や処理が古いデータに基づいて行われるのを防ぐ重要な役割を持ちます。

目次

基本構文

clean_category_cache( $post_id );
  • $post_id に指定した投稿のカテゴリーに関するキャッシュを削除します。
  • 主に get_the_category() によって取得される情報の再取得を促します。
  • 自動的には削除されない場合の手動キャッシュ削除に使用されます。

引き数と戻り値

引き数説明
$post_idintキャッシュを削除したい投稿の 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() を使う必要があります。

カスタムタクソノミーにも使える?

いいえ。clean_category_cache() はカテゴリー専用です。カスタムタクソノミーには clean_object_term_cache() を使いましょう。

投稿を保存したときにも必要?

save_post アクションの中でカテゴリーを更新する場合など、処理の順番によっては必要になります。

まとめ

clean_category_cache() は、WordPress で投稿に関連付けられたカテゴリー情報のキャッシュを削除するための関数です。

カテゴリーを更新・追加・削除した際に、確実に最新情報を反映させたい場合に使われます。正確なカテゴリー情報を常に扱うためにも、特に動的なカテゴリー操作を行う開発時には重要な役割を果たします。

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

コメント

コメントする

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

目次