clean_taxonomy_cache()
は、WordPress において特定のタクソノミー(分類)の関連キャッシュを削除する関数です。これにより、分類名の変更やタクソノミーの再構成などが即座に反映されるようになります。
分類の構成情報がキャッシュによって古いまま残ってしまう問題を解決するために使用されます。
基本構文
clean_taxonomy_cache( string $taxonomy );
解説
指定した $taxonomy
(例:category
や post_tag
、またはカスタムタクソノミー)に関する以下のようなキャッシュが削除されます:
- タクソノミーのオブジェクト定義キャッシュ
- 対象タクソノミーに属するタームリストのキャッシュ
- 関連のターム情報など
引き数と戻り値
引数 | 型 | 説明 |
---|---|---|
$taxonomy | string | キャッシュをクリアする対象のタクソノミー名 |
戻り値 | 型 | 説明 |
---|---|---|
なし | void | 値は返さず副作用のみ |
使用例
タグを使った使用例
// カスタムタクソノミー「genre」のキャッシュを削除
clean_taxonomy_cache( 'genre' );
このように指定することで、タクソノミー「genre」に関するキャッシュ(定義、タームリスト等)が削除されます。変更後の情報が即座に有効になります。
注意点
- 分類名の誤記に注意:登録されていないタクソノミー名を指定してもエラーにはならず、何も起きません。
- キャッシュ削除のタイミングに注意:分類の再登録やタームの更新後に行う必要があります。
- システム全体への影響:キャッシュ削除はパフォーマンスに影響するため、頻繁に呼び出す処理には適しません。
よく一緒に使われる関数
unregister_taxonomy()
unregister_taxonomy( 'genre' );
clean_taxonomy_cache( 'genre' );
タクソノミーを削除した後、古いキャッシュをクリアして影響を防ぎます。
register_taxonomy()
register_taxonomy( 'genre', 'post', $args );
clean_taxonomy_cache( 'genre' );
新たに登録または再登録したあと、キャッシュを削除して確実に適用。
get_taxonomy()
clean_taxonomy_cache( 'genre' );
$taxonomy = get_taxonomy( 'genre' );
最新のタクソノミー情報を取得する前にキャッシュをクリアすることで、正確なデータを取得。
想定されるトラブル
タクソノミーの変更が反映されない
コード上で register_taxonomy()
のパラメータを変更しても、表示が変わらないことがある。
解決方法
変更後に clean_taxonomy_cache()
を呼び出し、キャッシュをクリアする。
タームリストが古い情報を表示している
タームが削除・変更されたのに、一覧に反映されない。
解決方法
clean_taxonomy_cache()
を使って対象タクソノミーのキャッシュを削除。
Q&A
まとめ
clean_taxonomy_cache()
は、WordPress で分類(タクソノミー)のキャッシュを削除するための関数で、分類構造の変更や削除などを即座に反映させたい場合に利用されます。
分類名の正確な指定とタイミングを意識して活用することで、分類表示の整合性を保つことができます。
特にカスタムタクソノミーを多用するサイト構築やプラグイン開発においては、知っておくべき重要な関数です。
コメント