wp_get_attachment_metadata()
は、画像や添付ファイルの詳細なメタデータを取得するテンプレートタグです。
幅や高さ、サムネイルのパス、ファイルサイズといった情報を配列で返します。主にギャラリーやメディアの管理に使われます。
機能の説明
wp_get_attachment_metadata()
は、指定された添付ファイルIDに関連する詳細なメタデータを取得するためのタグです。
特に画像の幅や高さ、生成されたサムネイルの情報など、メディア管理で必要な情報を取得するのに便利です。
シンプルなコード例
$metadata = wp_get_attachment_metadata(123);
print_r($metadata);
添付ファイルIDが123
の画像メタデータを取得し、print_r()
で配列の内容を表示します。
使い方の解説
引数
wp_get_attachment_metadata($attachment_id, $unfiltered)
$attachment_id
: 添付ファイルのID$unfiltered
:true
にすると未フィルタの生データを返します(省略可)。
戻り値
- メタデータの配列(
false
が返される場合はIDが無効なとき)
戻り値のデータ構造の一例
array(
'width' => 1200,
'height' => 800,
'file' => '2023/10/image.jpg',
'sizes' => array(
'thumbnail' => array(
'file' => 'image-150x150.jpg',
'width' => 150,
'height' => 150,
'mime-type' => 'image/jpeg',
),
'medium' => array(
'file' => 'image-300x200.jpg',
'width' => 300,
'height' => 200,
'mime-type' => 'image/jpeg',
)
),
'image_meta' => array(
'aperture' => '11',
'credit' => '',
'camera' => 'Canon EOS 5D',
'created_timestamp' => '1634030140',
'copyright' => '',
'focal_length' => '85',
'iso' => '100',
'shutter_speed' => '1/200',
'title' => '',
),
);
使用例
$attachment_id = 456;
$metadata = wp_get_attachment_metadata($attachment_id);
if ($metadata) {
echo '画像の幅: ' . $metadata['width'] . 'px<br>';
echo '画像の高さ: ' . $metadata['height'] . 'px<br>';
echo 'ファイル名: ' . $metadata['file'] . '<br>';
if (isset($metadata['sizes']['thumbnail'])) {
echo 'サムネイル: ' . $metadata['sizes']['thumbnail']['file'];
}
} else {
echo 'メタデータが取得できません。';
}
指定された添付ファイルの幅や高さ、ファイル名、サムネイル情報を取得して表示しています。
一緒に使うことが多い関連タグ
get_post_mime_type()
get_post_mime_type()
は、添付ファイルのMIMEタイプを取得するテンプレートタグです。
echo 'MIMEタイプ: ' . get_post_mime_type(456);
添付ファイルIDが456
のファイルのMIMEタイプを表示します。
wp_get_attachment_image()
wp_get_attachment_image()
は、指定された添付ファイルの画像をHTMLタグとして出力するテンプレートタグです。
echo wp_get_attachment_image(456, 'medium');
IDが456
の添付ファイルをmedium
サイズで表示する<img>
タグを出力します。
$attachment_id = 789;
$metadata = wp_get_attachment_metadata($attachment_id);
if ($metadata && wp_attachment_is_image($attachment_id)) {
echo '<img src="' . wp_get_attachment_image_src($attachment_id, 'medium')[0] . '" alt="画像">';
echo '<p>ファイル名: ' . $metadata['file'] . '</p>';
echo '<p>MIMEタイプ: ' . get_post_mime_type($attachment_id) . '</p>';
}
画像が存在する場合、その画像のHTMLタグと、ファイル名、MIMEタイプを表示します。
追加情報を取得したい場合
get_post_meta()
で添付ファイルのカスタムフィールド情報を取得
$meta_value = get_post_meta(456, '_wp_attachment_image_alt', true);
echo 'ALTテキスト: ' . $meta_value;
添付ファイルIDが456
の画像のALT
テキスト(代替テキスト)を取得し、表示します。
出力できる情報
- width:画像の幅
- height:画像の高さ
- file:ファイル名とパス
- sizes:サムネイルサイズごとの詳細情報
- image_meta:画像の撮影情報(カメラ、露出、ISOなど)
想定されるトラブル
メタデータが取得できない
添付ファイルIDが無効であるか、画像が削除されている可能性があります。
解決方法
- 添付ファイルIDが正しいか確認してください。
- 画像が正しくアップロードされていることを確認してください。
サムネイル情報が空
サムネイルが生成されていない可能性があります。
解決方法
add_image_size()
でカスタムサイズを追加し、サムネイルを再生成してください。
Q&A
まとめ
wp_get_attachment_metadata()
は、画像ファイルの詳細なメタデータを取得するための便利なテンプレートタグです。画像のサイズやファイル名、撮影情報などを取得して表示する際に役立ちます。
wp_get_attachment_image()
や get_post_mime_type()
と組み合わせて使うことで、より豊富なメディア管理が可能になります。想定されるトラブルに備えたエラーハンドリングを実装することで、安定した画像表示が実現できます。
コメント