Advanced Custom Fieldsギャラリーの書き出し方

Advanced Custom Fieldsでギャラリーを使用したときの出力方法を備忘録で残しておこうと思います。
画像をループさせる方法とやり方が全然違うので、覚えておくといいかもしれませんね。

ラベル名を「acf_library_ss」としてます。
まずはがっつりソースから。

<?php 
 $gallery = get_field('acf_library_ss');
 if( $gallery ):
?>
 <ul class="slickImg">
  <?php foreach( $gallery as $gallerys ): ?>
	<li><img src="<?php echo $gallerys['url'] ;?>" alt="<?php echo $gallerys['caption'] ;?>"></li>
  <?php endforeach; ?>
 </ul>
<?php endif; ?>

1つずつ解説していきますね。

「acf_library_ss」をgalleryという変数に入れます。
ここは好きな変数で構いません。imageとかthumnailでもOKです!

ifで区切らないと、「Invalid argument supplied for foreach() in 」という
foreachに使えない変数を使っているよーというエラーが吐き出されます。
他の部分にも影響してしまうんですね。
なのでifで場合分けしておきましょう。

<?php 
 $gallery = get_field('acf_library_ss');
 if( $gallery ):
?>

あとは基本的にはforeachの通常の書き方に従います。
foreach は、配列を反復処理するための便利な方法で、配列とオブジェクトだけを使用できます。
別のデータ型や初期化前の変数に対してforeach 使用すると、上記のようなエラーが生じます。

「foreach( $gallery as $gallerys )」は
$galleryで指定したオブジェクトに対してループ処理を行う際に、ハンプる処理を「 $gallerys 」に格納するよーという意味です。
反復処理に対して、必要な情報を取得するので、liの中には

$gallerys[‘url’]   …$gallerysのURL
$gallerys[‘caption’] …$gallerysのcaption

という指定の仕方をしてあげます。

<?php foreach( $gallery as $gallerys ): ?>
	<li><img src="<?php echo $gallerys['url'] ;?>" alt="<?php echo $gallerys['caption'] ;?>"></li>
  <?php endforeach; ?>

かならずforeachをまわしたあとは「」でしめましょう!
これで完了です。

お疲れ様でした!