MENU

wp_get_attachment_metadata()

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

どのようなファイルでもメタデータを取得できますか?

画像以外のファイルでも一部のメタデータは取得可能ですが、画像固有の情報(幅や高さなど)は取得できません。

サムネイルが生成されない場合の対処法は?

add_image_size() で必要な画像サイズを定義し、再生成プラグインを使って画像を再生成します。

ALTテキストなどのカスタムフィールドは取得できますか?

はい、get_post_meta() を使用してカスタムフィールドの値を取得できます。

まとめ

wp_get_attachment_metadata() は、画像ファイルの詳細なメタデータを取得するための便利なテンプレートタグです。画像のサイズやファイル名、撮影情報などを取得して表示する際に役立ちます。

wp_get_attachment_image()get_post_mime_type() と組み合わせて使うことで、より豊富なメディア管理が可能になります。想定されるトラブルに備えたエラーハンドリングを実装することで、安定した画像表示が実現できます。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次