ワードプレスのwp_get_attachment_image_src関数の使用方法・解説

概要

wp_get_attachment_image_src関数は、指定された添付ファイルの画像情報(URL、幅、高さ、およびその画像がサイズに合っているかどうかのフラグなど)を取得するために使用されます。この関数は、特に以下のような機能を実装する際によく利用されます。

  1. 投稿やページに関連付けられた画像を表示する。
  2. ギャラリー機能を持つプラグインで画像データを取得する。
  3. カスタム投稿タイプの添付画像を処理する。
  4. サムネイル画像を表示するテンプレートを作成する。
  5. 画像の条件付き表示を行う。
  6. ビジュアルエディタのカスタマイズを行う際の画像取得。
  7. 商品ページで商品画像を表示するEコマース機能。
  8. ウェブサイトのカスタムウィジェットに画像を挿入する。

構文

$array = wp_get_attachment_image_src( $attachment_id, $size, $icon );

パラメータ

  • $attachment_id(整数): 取得したい添付ファイルのID。
  • $size(文字列または配列): 画像サイズ(例: ‘thumbnail’, ‘medium’, ‘large’, ‘full’)。サイズが配列の場合は幅と高さを指定できます。
  • $icon(ブール): アイコンとして表示するかどうか。デフォルトは false

戻り値

配列(URL、幅、高さ、およびサイズに合っているかどうかのフラグ)。ファイルが見つからなかった場合は false を返します。

関連する関数

使用可能なバージョン

この関数は、WordPress 2.9.0以降で利用可能です。

コアファイルのパス

wp-includes/media.php

サンプルコード

サンプルコード1

$attachment_id = 42; // 添付ファイルのID
$image_src = wp_get_attachment_image_src( $attachment_id, 'medium' );

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

このコードは、指定したIDの添付画像を中サイズで取得し、画像タグを出力します。

サンプルコード2

$attachment_id = 50;
$image_src = wp_get_attachment_image_src( $attachment_id, 'full' );

if ( $image_src ) {
    // 画像が見つかった場合のみ実行
    echo '<a href="' . esc_url( $image_src[0] ) . '">画像を表示</a>';
}

このコードは、指定されたIDの添付ファイルのフルサイズ画像を取得し、リンク付きで表示します。

サンプルコード3

$attachments = get_post_gallery_images( get_the_ID() );
foreach ( $attachments as $attachment_id ) {
    $image_src = wp_get_attachment_image_src( $attachment_id, 'thumbnail' );
    echo '<img src="' . esc_url( $image_src[0] ) . '" />'; 
}

このコードは、投稿のギャラリーからサムネイル画像を取得し、すべてを表示します。

サンプルコード4

$attachment_id = 1;
$image_data = wp_get_attachment_image_src( $attachment_id, 'medium', true );

if ( $image_data ) {
    echo '画像URL: ' . esc_url( $image_data[0] );
} else {
    echo '画像が見つかりませんでした。';
}

このコードは、指定されたIDの画像情報を取得し、URLを表示しますが、画像が見つからない場合は警告メッセージを出力します。

サンプルコード5

$post_thumbnail_id = get_post_thumbnail_id( get_the_ID() );
$image_src = wp_get_attachment_image_src( $post_thumbnail_id, 'large' );
?>
<img src="<?php echo esc_url( $image_src[0] ); ?>" alt="投稿サムネイル">

このコードは、現在の投稿のサムネイル画像を大サイズで取得し、画像タグを表示します。

この関数のアクションでの使用可能性

アクション名 使用可能
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

非推奨・削除情報

wp_get_attachment_image_src関数は、現在のところ、特定のバージョンにおいて非推奨または削除されていません。

この関数について質問する


上の計算式の答えを入力してください