BLOG

Custom Field Suite – ループを表示する

2013-08-02

0802

と、こんな感じで、
親ループ[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; ?>
/* 親ループ ここまで */

このような感じで、ループの中のループも表示できるかと思います。
便利です。