目次
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_id | int | 添付ファイル(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 | オリジナル画像のサイズ(ピクセル) |
---|
file | uploads ディレクトリ以下のパス |
---|
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ファイルなど画像以外のメディアでも、サムネイルが生成された場合は file
や width
, 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
- カスタムフィールドと組み合わせて、画像にタグ付けやカテゴリ分けをする際の補助情報として使えます。
- 高度な画像管理やギャラリー表示機能を実装する場合は、
sizes
や image_meta
を組み合わせることで、画像の質・撮影状況なども反映した表現が可能になります。