MENU

clean_term_cache()

clean_term_cache() は、WordPress でカテゴリやタグ、カスタムタクソノミーなどの ターム(term)データのキャッシュを手動で削除 するための関数です。

タームの情報を更新・削除した際、古いキャッシュが残っているとデータの不整合が発生することがあるため、この関数を使って明示的にキャッシュを削除します。

開発者が独自の操作を行った後に正しい表示を保証するために非常に有効です。

目次

基本構文

clean_term_cache( int|array $ids, string $taxonomy = '', bool $clean_taxonomy = true );

解説

  • $ids:削除対象のターム ID、または ID の配列。
  • $taxonomy:対象のタクソノミー(例:’category’, ‘post_tag’ など)。未指定でも可能。
  • $clean_taxonomytrue の場合、該当タクソノミーのキャッシュも一緒にクリア。

引き数と戻り値

引数説明
$idsint または array削除対象のターム ID または ID の配列
$taxonomystring削除対象のタクソノミー(オプション)
$clean_taxonomybooltrue の場合、タクソノミーのキャッシュも同時に削除(デフォルト:true)
戻り値説明
なしvoid値は返さず副作用のみ

使用例

タグを使った使用例

// タームID 42 のキャッシュを削除(カテゴリー)
clean_term_cache( 42, 'category' );

タームID 42 に関連するキャッシュ(名前、スラッグ、親子関係など)を削除し、再取得時に最新情報が取得されます。

// タームID 5, 7, 10 のタグタクソノミーのキャッシュを削除
clean_term_cache( [5, 7, 10], 'post_tag' );

複数のタームIDを指定して一括削除も可能です。

注意点

  • 存在しないタームIDを指定してもエラーにはならず無視されます。
  • $taxonomy を省略した場合、削除対象が不明確になる可能性があります(パフォーマンスにも影響)。
  • タームを手動で更新した場合にのみ使用する。wp_insert_term()wp_delete_term() などの関数を使うと自動的に呼ばれるため、通常は不要です。

よく一緒に使われる関数

get_term()

clean_term_cache( 10, 'category' );
$term = get_term( 10, 'category' );

キャッシュを削除したうえで get_term() を使うと、常に最新の情報を取得可能。

wp_insert_term()

$term = wp_insert_term( '新しいジャンル', 'genre' );
clean_term_cache( $term['term_id'], 'genre' );

タームを追加した直後にキャッシュを削除することで、別のプロセスで古いキャッシュを使わないようにします。

wp_update_term()

wp_update_term( 22, 'genre', [ 'name' => '修正済みジャンル' ] );
clean_term_cache( 22, 'genre' );

タームの名前やスラッグなどを変更後に呼び出し、変更がすぐに反映されるようにします。

想定されるトラブル

タームの変更が反映されない

get_term() などで取得したデータが、変更後も古いまま表示される。

解決方法

変更後に clean_term_cache() を実行してキャッシュを削除する。

ターム削除後も表示される

wp_delete_term() の後にキャッシュ削除されず、一覧にまだ存在するように見える。

解決方法

clean_term_cache() で強制的に削除。

Q&A

通常の投稿で使う必要はありますか?

投稿編集画面での処理では自動的に処理されるため、特別な理由がない限り必要ありません。

キャッシュ削除はパフォーマンスに悪影響ですか?

頻繁な呼び出しは影響しますが、1回の更新操作後に使う程度なら問題ありません。

$taxonomy を省略しても動作しますか?

一部の内部処理では動作しますが、明示的に指定するのが望ましいです。

まとめ

clean_term_cache() は、ターム(カテゴリ・タグ・カスタムタクソノミー)のキャッシュを明示的に削除するための関数で、情報の更新直後などに正しい表示を保証する目的で利用されます。

ターム操作をプログラムで行う場面や、キャッシュが残って不整合が発生する場合に活躍します。

正確なタクソノミーとタームIDを指定して、必要なタイミングで使うことが重要です。

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

コメント

コメントする

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

目次