wp_get_attachment_metadata() の使い方|説明・引数・注意点

説明

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

コメント

タイトルとURLをコピーしました