WordPress 高级自定义字段重复器,将每 3 个 div 换成一行

RMH*_*RMH 2 php wordpress advanced-custom-fields

我正在使用高级自定义字段,并且我想将每 3 个 div 包装成一行。如果有第四个 div 或额外的 2 个 div,那么它们将被包装在自己的行中。所以用一行打开和关闭。

我目前有基本输出,但我当前添加计数器的所有尝试都失败了。任何帮助,将不胜感激

<?php // wrap every 3 divs in a row

     if(get_field('triple_column_2')): ?>

     <?php while(has_sub_field('triple_column_2')):  ?>

            <div class="col-sm-4">
              <?php the_sub_field('copy'); ?>
            </div>

      <?php endwhile; ?>

     <?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

man*_*hie 5

您可以以此为起点。我还没有测试过它,所以我的逻辑可能存在一些小问题,但这将使您能够顺利完成大部分工作(如果不是全部!)。

if ( get_field( 'triple_column_2' ) ): ?>

    <?php $index = 1; ?>
    <?php $totalNum = count( get_field('triple_column_2') ); ?>

    <row>
    <?php while ( has_sub_field( 'triple_column_2' ) ): ?>


        <div class="col-sm-4">
            <?php the_sub_field( 'copy' ); ?>
        </div>
        <? if ($index % 3 == 0) : ?>
            <? if ($index < $totalNum) : ?>
                // more rows, so close this one and start a new one
                </row>
                <row>
            <? elseif ($index == $totalNum) : ?>
                // last element so close row but don't start a new one
                </row>
            <? endif; ?>

        <? endif; ?>

    <?php $index++; ?>
    <?php endwhile; ?>

<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)