説明
wp_get_attachment_metadata() は、添付ファイル(画像)のメタデータ(サイズ、ファイル名など)を取得する関数です。
基本構文
wp_get_attachment_metadata( int $attachment_id = 0, bool $unfiltered = false ): array|false
引数
$attachment_id:添付ファイルのID$unfiltered:フィルターを通さず取得するか
戻り値
メタデータの配列。
使い方(サンプル)
$meta = wp_get_attachment_metadata( 45 );
注意点
sizesに各サイズの情報が含まれます。
実務での使いどころ
- 画像の幅・高さや、生成されたサイズの一覧を取得するとき。
- EXIFなどの、画像のメタ情報(
image_meta)を取得するとき。
よくあるミスと対処
- サイズが生成されていない画像で、
sizesに目的のサイズがない。小さな画像では、そのサイズは作られない。 - 取得した配列を、編集して保存するときに、一部だけを保存している。全体を保存する。
- 画像でない添付ファイル(PDFなど)で、画像用の項目がない。
NG例
$meta = wp_get_attachment_metadata( $id );
echo $meta['sizes']['card']['file']; // 無い場合に、エラーになる
OK例
$meta = wp_get_attachment_metadata( $id );
if ( ! empty( $meta['sizes']['card']['file'] ) ) {
echo esc_html( $meta['sizes']['card']['file'] );
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| メタデータを取得 | wp_get_attachment_metadata() |
| メタデータを作る(サムネイルも生成) | wp_generate_attachment_metadata() |
| メタデータを保存 | wp_update_attachment_metadata() |
関連項目
wp_generate_attachment_metadata()、wp_get_attachment_image_src()、wp_update_attachment_metadata()
公式リファレンス:wp_get_attachment_metadata() | Function | WordPress Developer Resources

コメント