ACFで画像フィールドは、デフォルトで配列を返してくれますが、
グループや繰り返しフィールを利用した際に、
画像フィールドに、同じフィールド名を使用した場合、
重複する2つ目以降は、配列ではなく、画像IDしか返してくれません。
1つ目は、ちゃんと、配列を返してくれます。
これは、「仕様」なのか「バグ」なのか・・・
グループを作って、複写して利用する場合などは注意が必要。
多分、ファイルフィールドも同じ状況。
単一階層の場合は、当然フィールド名はかぶることが出来ない。
(当然、値は上書きされる)
フィールドラベル 「画像A」 / フィールド名 [‘img_a’]
フィールドラベル 「イメージA」 / フィールド名 [‘img_a’] 駄目×
グループの場合、2階層目のフィールド名はかぶっても大丈夫
(・・・この考え方が間違ってる?)
[‘groupA’][‘img_a’] 配列が返される
[‘groupB’][‘img_a’] 画像IDが返される
仕方がないので、こんな感じに、配列の場合と、画像IDで返ってくる場合に分けてみた
$img = get_field(‘groupA’)[‘img_a’];
$src=”;
if(is_array($img)):
$src= $img[‘url’];
else:
$src = wp_get_attachment_image_src( $img, ‘large’ )[0];
endif;
echo ‘<img src=”‘.$src.‘” />’;
ファイルの時は、
$src = wp_get_attachment_url( $img);