作業毎の概算費用としてACFで登録した価格のフィールドにある数値を合計して出力してほしいという要件がありました。
具体的には「作業項目」と「料金」というサブフィールドを持つ繰り返しフィールドを設定し、作業内容毎に料金を入力。項目毎の「料金」を合計して「作業概算費用」として合計値を出力するといったものです。
このページのコンテンツ
実装方法
特定のフィールドの値を合計して出力するには、下記のコードを出力したい場所に記述します。
<?php $total = 0; while(the_repeater_field('繰り返しフィールド名')): $total += intval(get_sub_field('合計したいサブフィールド名')); endwhile; echo $total; ?>
実装例
<?php if(have_rows('repeatfield')): ?> <ul> <?php while(have_rows('repeatfield')): the_row(); ?> <?php $work = get_sub_field('work'); $price = get_sub_field('price'); ?> <li><?php echo $work; ?> <?php echo $price; ?>円</li> <?php endwhile; ?> </ul> <?php endif; ?> <p>作業概算: <?php $total = 0; while(the_repeater_field('repeatfield')): $total += intval(get_sub_field('price')); endwhile; echo $total; ?>円</p>
おまけ:繰り返しフィールドの行数をカウントして連番として出力
ループで繰り返し出力される先頭などに「項番」を振りたいような場合は下記のコードで実装可能です。
<?php if( have_rows('繰り返しフィールド名') ): $i = 0; ?> <?php while( have_rows('繰り返しフィールド名') ): the_row(); $i++; ?> //連番を出力したい部分に下記を記述 <?php echo $i; ?> <?php endwhile; ?> <?php endif; ?>
この記事を書いた人管理人
SAKURAGRAPHICA代表
会社員の傍ら、フリーランスでWEBサイトの制作やWordPressによるCMSの構築・障がい者の就労支援としてホームページ制作の職業指導員も行っております。