我正在使用模运算符,以便在循环运行 3 次后,它被包装在一个"行"div 中。
但是,我现在想稍微添加代码,以便如果循环只运行两次,它将列的宽度更改为"large-6"而不是"large-4"。
这可能还是会搞砸原来的模函数?
注意 - 我为此使用高级自定义字段,这就是"have_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;?>
好的,我假设您正在使用高级自定义字段(ACF)或其他东西,因为据我(和Google)所知,have_rows()
不是WordPress函数调用。
如果它是来自 ACF 的have_rows()
,则返回一个布尔值,顾名思义。这使您的问题更加困难,因为您需要在开始循环之前知道有多少行。
您可以在主循环之前执行快速循环,计算行数,然后决定 CSS 需要哪个类。这不是最佳的,但老实说,在某些时候你必须计算它们才能决定。
对它们进行计数后,您可以做出决定,设置一个变量,然后在现有循环中,使用新创建的变量。
很确定您必须在循环之间wp_reset_query()
重置循环。不过,我可能错了。
呵呵,
=C=