Custom Field Suite – ループを表示する
2013-08-02
と、こんな感じで、
親ループ[loop-parent]
└子ループ[loop-child]
としている場合のループ表示の方法をメモ。
単一のループ表示
まず、Custom Field Suite独自のコードでループのデータを取ります。
以下のコードは、ループデータを$fieldsに格納した例です。
$fields = $cfs->get('loop-parent');
これにより、一つ目のループ「親ループ」で生成したフィールド全てが、$fieldsに入ります。
それを、foreachで繰り返して、その数だけ繰り返し表示すればOKです。
<?php $fields = $cfs->get('personal-d'); foreach ($fields as $field): ?> ?> /* ループ表示 ここから */ <p class="name"><?php echo $field['name']; ?></p> /* ここまで */ <?php endforeach; ?>
これで、1つ目のループは表示できるかと思います。
ループの中のループを表示する
$fields = $cfs->get('loop-parent');
このコードで親ループの内容を取ると、その中のデータは配列に格納されるようで、
子ループは、普通にforeachで回すだけで表示されます。
<?php $fields = $cfs->get('loop-parent'); foreach ($fields as $field): ?> ?> /* 親ループ表示 ここから */ <p class="name"><?php echo $field['name']; ?></p> /* 子ループ表示 ここから */ <?php $subfields = $field['loop-child']; if($subfields):?> <ul> <?php foreach ($subfields as $subfield): ?> <li class="year"><?php echo $subfield['year'] ?></li> <li class="words"><?php echo $subfield['words'] ?></li> <?php endforeach; endif; ?> </ul> /* 子ループ ここまで */ <?php endforeach; ?> /* 親ループ ここまで */
このような感じで、ループの中のループも表示できるかと思います。
便利です。