MENU

clean_attachment_cache()

clean_attachment_cache() は、WordPress の 添付ファイル(メディア)に関連するキャッシュをクリアするための関数です。

主に投稿の保存・削除・変更時などに呼び出され、対象のメディア(画像など)に対するキャッシュされた情報をリセットし、最新の状態に保つ役割を果たします。

特に、wp_get_attachment_metadata()wp_get_attachment_image_src() などの出力が正確であるように整えるために必要です。

目次

基本構文

clean_attachment_cache( $post_id );
  • $post_id に指定した添付ファイルのキャッシュを削除します。
  • 内部的には clean_post_cache() を呼び出しつつ、添付ファイル専用の処理が追加されています。

引き数と戻り値

引き数説明
$post_idintキャッシュを削除する添付ファイルのID
戻り値説明
なし(void何も返さない(副作用型)

使用例

タグを使った使用例

$attachment_id = 123; // 例: メディアライブラリ内の画像ID
clean_attachment_cache( $attachment_id );

このコードは、画像ID 123 に関連するキャッシュをクリアします。たとえば、画像を差し替えた直後などに使用することで、古いキャッシュを防ぎます。

注意点

  • この関数は 添付ファイルに限定されています。他の投稿タイプには clean_post_cache() を使用します。
  • キャッシュクリア後、一部の関数(例: wp_get_attachment_metadata())は再計算のために追加処理を要する場合があります。
  • サイト全体に多用するとパフォーマンスに影響を及ぼす可能性があります。

よく一緒に使われる関数

wp_get_attachment_metadata()

$meta = wp_get_attachment_metadata( $attachment_id );

添付ファイルのメタデータ取得。キャッシュ削除後に再取得して最新情報を確保できます。

wp_update_attachment_metadata()

wp_update_attachment_metadata( $attachment_id, $new_meta );

メタデータ更新後に clean_attachment_cache() を併用することで、確実に新データが反映されます。

clean_post_cache()

clean_post_cache( $post_id );

一般投稿タイプのキャッシュ削除。clean_attachment_cache() の下位互換的な役割。

想定されるトラブル

キャッシュが残って古い画像が表示される

画像を差し替えたのにサムネイルなどで古い画像が表示される。

解決方法

clean_attachment_cache( $attachment_id ) を実行し、キャッシュをクリアする。

添付ファイルではない投稿に対して使用した

通常の投稿・固定ページに対して使用しても効果がない。

解決方法

添付ファイルかどうかを get_post_type() で確認してから使用する。

Q&A

投稿IDに画像以外のIDを指定しても動作しますか?

しません。post_typeattachment である必要があります。

自動的に呼ばれることはありますか?

はい。投稿の更新や削除時など、WordPress コア内部でも使用されています。

キャッシュ削除のタイミングはいつが適切?

メタデータや画像ファイルの差し替えなど、変更後すぐが推奨されます。

まとめ

clean_attachment_cache() は、WordPress のメディア管理において非常に重要なキャッシュクリア関数です。

画像のメタ情報や出力結果を常に正しい状態に保つために、更新処理後に明示的に呼び出すことで、ユーザーに最新の情報を提供することができます。

特にカスタムアップローダーや画像差し替え処理を扱う開発者にとっては、必須の関数です。

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

コメント

コメントする

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

目次