ワードプレスの投稿に含まれる画像をすべて取得するには?
下記のコードは$postidに指定された投稿に含まれるすべての画像URLを出力します。投稿に含まれる画像ギャラリーを置いたりするのに利用できるかと思います。コードはテーマファイルの投稿を出力するファイルsingle-post.php, single.phpなどで利用できるかと存じます。
$args = array( 'post_parent' => $postid, 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => 'any', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC' ); $images = get_posts($args); if($images) { foreach($images as $image) { echo wp_get_attachment_url($image->ID); } }
ワードプレスの投稿に含まれる最初の画像URLを取得するには?
下記のようにコードを一部変更されることで投稿に挿入されている最初の画像URLを取得することが可能です。
$args = array( 'post_parent' => $postid, 'post_type' => 'attachment', 'numberposts' => 1, //1枚だけ取得する 'post_status' => 'any', 'post_mime_type' => 'image', 'orderby' => 'menu_order', 'order' => 'ASC' ); $image = get_posts($args); if($image) { echo wp_get_attachment_url($image[0]->ID); }
コードの解説
このプログラムはget_postsを使い$argsで指定した条件にて、ワードプレスのデータを取得しています。
‘post_parent’ 画像が添付されている投稿のID
‘post_type’ 添付画像
‘numberposts’ 取得する最大数
‘post_status’ 画像の投稿ステータス
‘post_mime_type’ タイプ(画像)
‘orderby’ 並び順
‘order’ 昇順・降順
を指定しています。
リストとして$imagesに取得した画像の配列から、wp_get_attachment_urlにその画像のIDを指定して画像URLを取得します。