前提・実現したいこと
wordpressのアドバンスカスタムフフィールド(以下ACF)を使ってループさせた画像を表示させたい
カスタム投稿ページにACFを使って画像を3枚登録しています。訳あって、返り値を【画像ID】にしています。
ACFが持っているループ機能を使って、画像3枚を表示させたいのですが、うまくいきません。
URLが空で表示されます。
・メインフィールド名:main_area
・ループフィールド名:Image_area
該当のソースコード
<?php if ( have_posts() ) : //条件分岐:投稿があるなら ?> <?php while ( have_posts() ) : the_post();//繰り返し処理開始 ?> <?php if( have_rows('main_area') ): ?><?php while( have_rows('main_area') ): the_row();
$e_img = wp_get_attachment_image_src(get_sub_field('Image_area'), 'full');
$src = $e_img[0];
?>
<div class="img_box">
<?php endwhile; // 繰り返し終了 ?> <?php endif; //条件分岐終了 ?><img src="<?php echo $src; ?>" alt="" /> </div> <?php endwhile; ?> <?php endif; ?>
試したこと
返り値を画像オブジェクトにした場合は問題なく表示されましたが、今回は返り値をどうしても【画像ID】にする必要があります。
ちなみに返り値オブジェクトにしたときのソースは以下です。
該当のソースコード
<?php if ( have_posts() ) : //条件分岐:投稿があるなら ?> <?php while ( have_posts() ) : the_post();//繰り返し処理開始 ?> <?php if( have_rows('main_area') ): ?><?php endwhile; // 繰り返し終了 ?> <?php endif; //条件分岐終了 ?><?php while( have_rows('main_area') ): the_row(); $e_img = get_sub_field('Image_area'); ?> <div class="img_box"> <?php if( $e_img ): ?> <img src="<?php echo $e_img['url']; ?>" alt="<?php echo $e_img['alt'] ?>" /> <?php endif; ?> </div> <?php endwhile; ?> <?php endif; ?>
補足情報(FW/ツールのバージョンなど)
wordpress 4.8.3
カスタム投稿ページ
アドバンスカスタムフィールドを使用
画像の返り値は画像ID
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/05 13:25
2019/02/05 13:29
2019/02/05 13:46
2019/02/05 13:47