wp_get_attachment_metadata()

wp_get_attachment_metadata()
目次

wp_get_attachment_metadata()とは?

wp_get_attachment_metadata() は、WordPress において添付ファイル(特に画像ファイル)に関連するメタデータを取得するための関数です。主に、画像のサイズ情報(幅・高さ・サムネイル情報など)や、PDFのページ数など、メディアファイルに紐づく技術的な情報を取得する場面で使われます。

wp_get_attachment_metadata()の基本構文

wp_get_attachment_metadata( int $attachment_id )

wp_get_attachment_metadata()のパラメータ

パラメータ説明
$attachment_idint添付ファイル(attachment)の投稿ID。必須。

wp_get_attachment_metadata()の戻り値

  • array:添付ファイルに保存されているメタデータの連想配列。
  • false:無効な ID や、メタデータが存在しない場合。

wp_get_attachment_metadata()の取得できる情報(画像ファイルの場合)

wp_get_attachment_metadata() が返す配列は、画像ファイルであれば以下のような構造になります:

Array
(
    [width] => 1200
    [height] => 800
    [file] => 2025/07/sample.jpg
    [sizes] => Array
        (
            [thumbnail] => Array
                (
                    [file] => sample-150x150.jpg
                    [width] => 150
                    [height] => 150
                    [mime-type] => image/jpeg
                )

            [medium] => Array
                (
                    [file] => sample-300x200.jpg
                    [width] => 300
                    [height] => 200
                    [mime-type] => image/jpeg
                )

            ...
        )
    [image_meta] => Array
        (
            [aperture] => 0
            [credit] =>
            [camera] =>
            [created_timestamp] => 0
            [copyright] =>
            [focal_length] => 0
            [iso] => 0
            [shutter_speed] => 0
            [title] =>
            [orientation] => 0
            ...
        )
)

wp_get_attachment_metadata()のメタデータの構成要素

キー内容
width / heightオリジナル画像のサイズ(ピクセル)
fileuploads ディレクトリ以下のパス
sizes生成されたサムネイル等のサイズ一覧(add_image_size() に基づく)
image_metaカメラ情報や撮影日時など、Exifデータ(対応画像のみ)

wp_get_attachment_metadata()の使用例

例1:画像のオリジナルサイズを取得

$meta = wp_get_attachment_metadata( $attachment_id );

if ( $meta ) {
    echo '幅:' . $meta['width'] . 'px、高さ:' . $meta['height'] . 'px';
}

例2:中サイズ画像のファイル名を取得

$meta = wp_get_attachment_metadata( $attachment_id );

if ( isset( $meta['sizes']['medium']['file'] ) ) {
    echo '中サイズ画像ファイル名:' . esc_html( $meta['sizes']['medium']['file'] );
}

例3:Exif 情報を表示する(撮影日など)

$meta = wp_get_attachment_metadata( $attachment_id );

if ( isset( $meta['image_meta']['created_timestamp'] ) ) {
    $timestamp = $meta['image_meta']['created_timestamp'];
    if ( $timestamp > 0 ) {
        echo '撮影日:' . date( 'Y年m月d日', $timestamp );
    }
}

PDFファイルの場合のメタデータ

PDFファイルなど画像以外のメディアでも、サムネイルが生成された場合は filewidth, height, sizes が格納されることがあります。WordPress 5.3以降では PDF の1ページ目を画像に変換する機能がデフォルトで有効です。

wp_generate_attachment_metadata() との関係

  • wp_get_attachment_metadata() は、添付ファイル登録時に wp_generate_attachment_metadata() によって保存されたデータを取得する関数です。
  • WordPress は画像のアップロード時に自動で複数サイズの画像を生成し、それらを postmeta テーブルに _wp_attachment_metadata というキーで保存します。

wp_get_attachment_metadata()のよくある活用シーン

シーン活用方法
独自の画像ギャラリー作成サイズやExif情報を活用して表示をカスタマイズ
サムネイルの存在チェックsizes の配列を参照して表示の可否を判定
JSON APIのレスポンスに添付画像情報を含めるwp_get_attachment_metadata() で取得し、APIに返す
画像の向き判定(orientation)Exifデータを使って回転処理を自動化
撮影日順の並び替えcreated_timestamp を使って並び替え

wp_get_attachment_metadata()の関連関数

関数名内容
wp_generate_attachment_metadata()添付ファイルのメタデータを生成し保存
update_post_meta()メタデータを手動で更新
wp_get_attachment_image_src()画像の URL・幅・高さを取得
wp_get_attachment_image()<img> タグの出力
get_post_meta()メタデータの取得(低レベルAPI)

wp_get_attachment_metadata()の注意点

  • メタデータは postmeta テーブルの _wp_attachment_metadata に保存されています。
  • 画像アップロード時にエラーがあると、サムネイルなどのサイズ情報が生成されず、sizes が空になることがあります。
  • SVGファイルなどは画像サイズの生成がないため、戻り値が限定的になります。
  • Exif情報(image_meta)は JPEG などの一部画像形式に限定されます。

wp_get_attachment_metadata()のまとめ

項目内容
関数名wp_get_attachment_metadata()
用途添付画像・メディアのメタデータ取得
引数添付ファイルの投稿ID(int)
戻り値メタデータ配列 or false
主な情報画像サイズ・ファイルパス・Exif(カメラ情報など)
利用シーン独自ギャラリー、画像整理、撮影情報表示など
関連関数wp_generate_attachment_metadata(), get_post_meta(), wp_get_attachment_image_src()

wp_get_attachment_metadata()の実践TIP

  • カスタムフィールドと組み合わせて、画像にタグ付けやカテゴリ分けをする際の補助情報として使えます。
  • 高度な画像管理やギャラリー表示機能を実装する場合は、sizesimage_meta を組み合わせることで、画像の質・撮影状況なども反映した表現が可能になります。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次