Advanced Custom FieldsのアドオンRepeater Fieldの出力メモ
- 2017.10.22
- CMS Wordpress
- Advanced Custom Fields, plugin, Repeater Field, めも, リピーター, 出力
いつも忘れやすいので・・・
リピーターフィールドを用いる際の出力設定。
■詳細ページ内で取得(独自関数使用)
<?php if( have_posts() ): ?> <?php while( have_posts() ) : the_post(); ?> <?php $cnt = 0; $post_row = get_post_meta(get_the_ID(),'post_row',true); while(the_repeater_field('post_row')){ $data[$cnt]['title'] = get_sub_field('post_row_title'); $media = get_sub_field('post_row_image'); $data[$cnt]['image'] = $media['url']; $data[$cnt]['caption'] = get_sub_field('post_row_caption'); $cnt++; } ?> <?php if($post_row): ?> <?php foreach ($data as $value) : ?> <?php echo $value['title']; ?> <img src="<?php echo $value['image']; ?>" alt="<?php if($value['caption']): ?><?php echo $value['caption']; ?><?php endif; ?>"> <?php endforeach; ?> <?php endif; ?> <?php endwhile; ?> <?php endif; ?>
■functionなどで使用(idから取得/独自関数を使わない)
function my_custom_get_post($id) { $cnt = 0; $post_row = get_post_meta($id,'post_row',true); if($post_row){ for ($i = 0; $i < $post_row; $i++ ){ $data[$cnt]['title'] = get_post_meta($id, 'post_row_'.$i.'_post_row_title', true); $media = get_post_meta($id, 'post_row_'.$i.'_post_row_image', true); $temp = wp_get_attachment_image_src($media, 'large'); $data[$cnt]['image'] = $temp[0]; $data[$cnt]['caption'] = get_post_meta($id, 'post_row_'.$i.'_post_row_caption', true); $cnt++; } } return $data; }
<?php $post_row = my_custom_get_post(get_the_ID()); ?> <?php if($post_row): ?> <?php foreach ($data as $value) : ?> <?php echo $value['title']; ?> <img src="<?php echo $value['image']; ?>" alt="<?php if($value['caption']): ?><?php echo $value['caption']; ?><?php endif; ?>"> <?php endforeach; ?> <?php endif; ?>
-
前の記事
クリックで回転するドーナツ型メニューの実装 2017.09.14
-
次の記事
プラグインを使わずにカスタムフィールドを設定する 2017.10.26