
目次
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_id | int | 添付ファイル(画像)の投稿ID。これは必須。 |
$size | string / array | 取得したい画像サイズ。thumbnail , medium , large , full など、または ['幅', '高さ'] 形式の配列。 |
$icon | bool | 画像でない添付ファイル(例: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()
を使って独自サイズを定義することで、より柔軟な画像処理が可能になります。