投稿のアイキャッチ画像や、添付画像を取得・表示する方法をまとめました。
関数に関しては、様々なサイトやブログで解説されているので、ここでは用途別に逆引きにしてみました。

投稿の画像を取得・表示する関数

用途 取得値 関数 備考
投稿のアイキャッチ画像を表示
アイキャッチのHTMLを出力 imgタグ the_post_thumbnail( $size, $attr ) 投稿IDの指定は不可
アイキャッチのHTMLを取得 imgタグ get_the_post_thumbnail( $post_id, $size, $attr ) 投稿IDの指定が可能
投稿から画像IDを取得
アイキャッチ画像のID 画像ID get_post_thumbnail_id( $post_id )
添付画像のID オブジェクトの配列(画像IDを含む) get_children( $args, $output )
画像IDから画像を取得
画像のHTMLを出力 aタグ+imgタグ the_attachment_link( $id, $fullsize, $deprecated, $permalink ) 画像サイズは'thumbnail''full'のみ
画像のHTMLを取得(リンク付) aタグ+imgタグ
または
aタグ+テキスト
wp_get_attachment_link( $id, $size, $permalink, $icon, $text ) 全ての画像サイズに対応
imgタグのclassなどの属性値追加は不可
画像のHTMLを取得(リンク無) imgタグ wp_get_attachment_image( $attachment_id, $size, $icon, $attr ) classなどの属性値追加が可能
画像のURL等を取得 URL・width・height・リサイズ画像かの真偽値 wp_get_attachment_image_src( $attachment_id, $size, $icon )

アイキャッチ画像のHTMLを出力

the_post_thumbnail( $size, $attr )

$size — (オプション) 画像のサイズ。キーワード('thumbnail', 'medium', 'large', 'full'等)、または幅と高さの配列(例: array(32, 32))。初期値は、functions.php内のset_post_thumbnail_size関数で定義したサイズ。
$attr — (オプション)imgタグに追加する属性値を連想配列で指定(例: array('class' => 'post-thumb')

ループ内で、投稿のアイキャッチ画像をimgタグで出力(echo)します。
この関数では投稿IDは指定できないので、指定したい場合はget_the_post_thumbnail関数を使用します。

使用例

出力結果

投稿にアイキャッチ画像が存在するかを条件分岐する、has_post_thumbnail関数と組み合わせて使用する事もできます。

アイキャッチ画像のHTMLを取得

get_the_post_thumbnail( $post_id, $size, $attr )

$post_id(オプション)投稿ID。初期値はnull(ループ内で現在の投稿ID)
$size — (オプション) 画像のサイズ。キーワード('thumbnail''medium''large''full'等)、または幅と高さの配列(例: array(32, 32))。初期値は、functions.php内のset_post_thumbnail_size関数で定義したサイズ。
$attr — (オプション)imgタグに追加する属性値を連想配列で指定(例: array('class' => 'post-thumb')

ループ内、または投稿IDを指定して、アイキャッチ画像をimgタグで取得します(echoはしません)。

使用例

出力結果

アイキャッチ画像のIDを取得

get_post_thumbnail_id( $post_id )

$post_id(オプション)投稿ID。初期値はnull(ループ内で現在の投稿ID)

ループ内、または投稿IDを指定して、アイキャッチ画像のIDを取得します。

使用例

添付画像のIDを取得

添付画像のIDを取得するには、get_children関数を使用します。

get_children( $args, $output )

$args — (オプション)取得する記事を指定するパラメータ
$output — (オプション)戻り値の値

使用例

投稿IDが$post_idの時、添付画像のIDを取得するには、get_children関数を次のように使用します。

または、array_keys関数を使ってIDの配列を生成できます。

連想配列に条件を追加する事も可能です。

the_attachment_link関数は、画像やその他の添付ファイルを、リンク付き(画像の場合aタグ+imgタグ)のHTMLタグで出力(echo)する関数です。
画像の場合、リンク先はフルサイズ画像のURL(または添付ファイルページ)になります。

the_attachment_link( $id, $fullsize, $deprecated, $permalink )

$id — (オプション)添付ファイルID。初期値はnull(添付ファイルページのループ内で現在のID)
$fullsize — (オプション)サムネイル(false・デフォルト)またはフルサイズ(true
$deprecated — (廃止された引数・false
$permalink — (オプション)ファイルへの直リンク(false・デフォルト)または添付ファイルページ(true

画像サイズは、サムネイルかフルサイズしか選択できません。
他の画像サイズを指定したい場合は、wp_get_attachment_link関数を使用します。

また、リンク無しのimgタグだけが必要な場合は、wp_get_attachment_image関数を使用します。

使用例

出力結果

wp_get_attachment_link関数は、画像やその他の添付ファイルを、リンク付き(画像の場合aタグ+imgタグ)のHTMLタグで取得する関数です(echoはしません)。
画像の場合、リンク先はフルサイズ画像のURL(または添付ファイルページ)になります。

wp_get_attachment_link( $id, $size, $permalink, $icon, $text )

$id — (オプション)添付ファイルID。初期値はnull(添付ファイルページのループ内で現在のID)
$size — (オプション) 画像のサイズ。キーワード('thumbnail''medium''large''full'等)、または幅と高さの配列(例: array(32, 32))。初期値は'thumbnail'
$permalink — (オプション)ファイルへの直リンク(false・デフォルト)または添付ファイルページ(true

$icon — (オプション)メディアアイコンを使用する(true)または使用しない(false・デフォルト)
$text — (オプション)添付へのリンクをテキストにする(文字列)またはテキストにしない(false・デフォルト)

この関数では、imgタグのclassなどの属性値を追加できないので、追加したい場合はwp_get_attachment_image_src関数を使用してHTMLタグを組み立てる事になります。

また、リンク無しのimgタグだけが必要な場合は、wp_get_attachment_image関数を使用します。

使用例

出力結果

この関数では、imgタグではなくテキストのリンクにする事もできます。

出力結果

画像のHTML(リンク無し)を取得

wp_get_attachment_image関数は、画像やその他の添付ファイルを、リンク無し(画像の場合imgタグのみ)のHTMLタグで取得する関数です(echoはしません)。

wp_get_attachment_image( $attachment_id, $size, $icon, $attr )

$attachment_id — (必須)添付ファイルID
$size — (オプション) 画像のサイズ。キーワード('thumbnail''medium''large''full'等)、または幅と高さの配列(例: array(32, 32))。初期値は'thumbnail'
$icon — (オプション)メディアアイコンを使用する(true)または使用しない(false・デフォルト)
$attr — (オプション)imgタグに追加する属性値を連想配列で指定(例: array('class' => 'post-thumb')

この関数はimgタグのみのHTMLを取得します。
リンク付きのHTML(aタグ+imgタグ)を取得したい場合には、wp_get_attachment_link関数が便利です。

使用例

出力結果

画像のURL等を取得

wp_get_attachment_image_src( $attachment_id, $size, $icon )

$attachment_id — (必須)添付ファイルID
$size — (オプション) 画像のサイズ。キーワード('thumbnail''medium''large''full'等)、または幅と高さの配列(例: array(32, 32))。初期値は'thumbnail'
$icon — (オプション)メディアアイコンを使用する(true)または使用しない(false・デフォルト)

この関数は、画像のURLなどの情報を配列として取得します。

戻り値の配列は次のようになります。

[0] => 画像ファイルのURL
[1] => 画像のwidth
[2] => 画像のheight
[3] => リサイズ画像(true)またはフルサイズ画像(false

リサイズ画像については、$size引数で指定した画像サイズのファイルが見つからない場合、WordPressは代わりにフルサイズ画像のファイルURLを返します。この時、[3]falseになります。

使用例