wp_get_attachment_image_src()

wp_get_attachment_image_src()
目次

wp_get_attachment_image_src()とは?

wp_get_attachment_image_src() は、WordPress において添付画像ファイルの URL・サイズ情報などを配列で取得する関数です。画像を表示せずに画像の URL やサイズ情報だけを取得したいときに非常に便利で、テーマやプラグインの内部処理でよく使われます。

wp_get_attachment_image_src()の基本構文

wp_get_attachment_image_src( int $attachment_id, string|array $size = 'thumbnail', bool $icon = false )

wp_get_attachment_image_src()のパラメータ

パラメータ説明
$attachment_idint添付ファイル(画像)の投稿ID。これは必須。
$sizestring / array取得したい画像サイズ。thumbnail, medium, large, full など、または ['幅', '高さ'] 形式の配列。
$iconbool画像でない添付ファイル(例:PDFなど)の場合に、代替アイコン画像を取得するかどうか(通常は false)。

wp_get_attachment_image_src()の戻り値

  • 成功時:配列[画像URL, 幅, 高さ, 画像が存在するかの真偽値]
  • 失敗時:false

wp_get_attachment_image_src()の使用例(基本)

例1:アイキャッチ画像のURLとサイズを取得

$thumb_id = get_post_thumbnail_id();
$image = wp_get_attachment_image_src( $thumb_id, 'medium' );

if ( $image ) {
    echo '<img src="' . esc_url( $image[0] ) . '" width="' . esc_attr( $image[1] ) . '" height="' . esc_attr( $image[2] ) . '" />';
}

wp_get_attachment_image_src()の戻り値の構造

成功時の戻り値は、以下のような配列です:

[
  0 => 'https://example.com/wp-content/uploads/2025/07/sample.jpg', // URL
  1 => 300,  // 幅
  2 => 200,  // 高さ
  3 => true  // ファイルが存在するか(bool)
]

wp_get_attachment_image_src()のサイズ指定の詳細

サイズ指定内容
'thumbnail'サムネイルサイズ(例:150×150)
'medium'中サイズ(例:300×300)
'large'大サイズ(例:1024×1024)
'full'元画像のサイズ(オリジナル)
['300', '200']カスタムサイズ(幅300px, 高さ200px)

なお、テーマやプラグインで add_image_size() を使って独自サイズを登録していれば、それも指定可能です。

icon パラメータの役割

添付ファイルが画像でない(例えば PDF や Word ファイルなど)の場合でも、$icon = true にすることで、その MIME タイプに対応した WordPress 既定のアイコン画像の URL を取得できます。

$pdf_id = 123; // PDFなどの添付ID
$icon_image = wp_get_attachment_image_src( $pdf_id, 'thumbnail', true );

wp_get_attachment_image_src()のよくある活用例

1. JavaScript や JSON に画像情報を渡す

$image = wp_get_attachment_image_src( $thumb_id, 'medium' );
echo '<script>';
echo 'const imgData = ' . json_encode( $image ) . ';';
echo '</script>';

→ フロントエンドで画像のサイズやURLを動的に使いたいときに便利です。

2. <img> タグを手書きで構成したいとき

$image = wp_get_attachment_image_src( $thumb_id, 'large' );

if ( $image ) {
    echo '<img src="' . esc_url( $image[0] ) . '" width="' . esc_attr( $image[1] ) . '" height="' . esc_attr( $image[2] ) . '" alt="説明文">';
}

wp_get_attachment_image() と違い、より細かくカスタマイズできます。

3. 背景画像などに使う

$image = wp_get_attachment_image_src( $thumb_id, 'full' );

if ( $image ) {
    echo '<div style="background-image: url(' . esc_url( $image[0] ) . '); width:' . esc_attr( $image[1] ) . 'px; height:' . esc_attr( $image[2] ) . 'px;"></div>';
}

wp_get_attachment_image() との違い

関数名内容用途
wp_get_attachment_image()<img> タグの HTML を返すそのまま表示に使いたいときに便利
wp_get_attachment_image_src()URLとサイズ情報を配列で返す背景画像、JS用データ、カスタム出力などに便利

wp_get_attachment_image_src()の関連関数

関数名説明
wp_get_attachment_image()画像の <img> タグを返す
wp_get_attachment_metadata()添付画像のメタ情報(サイズやファイル名など)を取得
get_post_thumbnail_id()投稿のアイキャッチ画像の ID を取得
get_attached_file()添付ファイルのファイルパス(サーバー上)を取得

wp_get_attachment_image_src()の注意点

  • 戻り値の真偽判定に注意:戻り値は配列または false なので、if ( $image ) でチェックするのが安全。
  • 添付IDの存在確認が必要:存在しないIDを渡すと false になります。
  • サムネイルが生成されていないと false を返す場合がある:メディア登録時にサムネイルが作られていない場合など。

wp_get_attachment_image_src()のまとめ

項目内容
関数名wp_get_attachment_image_src()
用途添付画像のURLとサイズを配列で取得
引数添付ファイルID、画像サイズ、画像以外のファイル対応の有無
戻り値[URL, 幅, 高さ, 存在フラグ] または false
活用例JS連携、背景画像、カスタムHTML出力など
類似関数wp_get_attachment_image(), wp_get_attachment_metadata()

wp_get_attachment_image_src()の実践TIP

サイズの自動生成に問題がある場合、regenerate thumbnails プラグインなどで一度再生成してからこの関数を使うと、確実にサイズが取得できます。また、テーマ側で add_image_size() を使って独自サイズを定義することで、より柔軟な画像処理が可能になります。

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

この記事を書いた人

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

目次