我使用模运算符,以便在循环运行3次后,它被包裹在"行"格。
但是,我现在想稍微添加代码,以便如果循环只运行两次,它会将列的宽度更改为" large-6"而不是" large-4"。
这是可能的还是会搞砸原来的模数函数?
注意 - 我正在使用高级自定义字段,这是" has_rows"功能来自。
当前代码:
<?php if( have_rows('content_modules') ): ?>
<?php $i = 0; while( have_rows('content_modules') ): the_row(); ?>
<?php if($i % 3 == 0): ?>
<div class="row">
<?php endif; ?>
<div class="large-4 columns">
<?php if( !empty($link) ): ?>
<a href="<?php echo $link ?>"><img src="<?php echo $photo ?>" />
<h3><?php echo $title ?></h3></a>
<?php else: ?>
<img src="<?php echo $photo ?>" />
<h3><?php echo $title ?></h3>
<?php endif; ?>
<?php echo $content ?>
</div>
<?php if($i % 3 == 2): ?>
</div>
<?php endif; ?>
<?php $i++; endwhile; endif;?>
答案 0 :(得分:0)
好的,我假设您使用的是高级自定义字段(ACF)或其他内容,因为据我所知(和Google一样)have_rows()
不是WordPress函数调用。
如果是来自ACF的have_rows()
,它会返回一个布尔值,顾名思义。这使您的问题更加困难,因为您需要知道在开始循环之前有多少行。
你可以在主循环之前快速循环,计算行数,然后决定CSS需要哪个类。它并不是最佳的,但老实说,在某些时候你必须指望他们做出决定。
计算完毕后,您可以决定,设置变量,然后在现有循环内部,使用新创建的变量。
非常确定你必须在循环之间用wp_reset_query()
重置循环。我可能错了。
HTH,
= C =