我使用以下内容来包装每3个div,并且如果只有2个,则以相同的方式包装4-5。(同样适用于每6个,4个等)
当它只有3个div /元素时,它们就会被包裹起来。但是随后也会创建一个空元素。所以在下面的例子中。假设你有每个列表项3个div。好吧,在这一个你只有3,但创建一个空的“列表项”,什么都没有。如何附加我的代码,以便它不会创建一个空元素? (在我的情况下,使用带有柔性滑板的中继器,正在制作空滑板)
<?php //going to wrap every 3 in this example
if ( get_field( 'your_repeater_name' ) ): ?>
<?php $index = 1; ?>
<?php $totalNum = count( get_field('your_repeater_name') ); ?>
<li>
<?php while ( has_sub_field( 'your_repeater_name' ) ): ?>
<div class="col-sm-4">
<?php the_sub_field( 'your_sub_field' ); ?>
</div>
<? if ($index % 3 == 0) : ?>
<? if ($index < $totalNum) : ?>
// more rows, so close this one and start a new one
</li>
<row>
<? elseif ($index == $totalNum) : ?>
// last element so close row but don't start a new one
</li>
<? endif; ?>
<? endif; ?>
<?php $index++; ?>
<?php endwhile; ?>
<?php endif; ?>
答案 0 :(得分:0)
尝试更改&#34;循环&#34;你的脚本的一部分是这样的:
<li>
<?php while ( has_sub_field( 'your_repeater_name' ) ): ?>
<div class="col-sm-4">
<?php the_sub_field( 'your_sub_field' ); ?>
</div>
<?php if ($index % 3 == 0 && $index < $totalNum) : ?>
</li><li>
<?php endif; ?>
<?php $index++; ?>
<?php endwhile; ?>
</li>
不同之处在于循环外的最后一个</li>
(因为它无论如何都需要关闭,不需要将它放在if
内),所以现在你只需要必须检查$index < $totalNum
是否要插入另一行。