一个循环中的多个模运算符?

时间:2015-01-26 17:28:43

标签: php wordpress modulo

我使用模运算符,以便在循环运行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;?>

1 个答案:

答案 0 :(得分:0)

好的,我假设您使用的是高级自定义字段(ACF)或其他内容,因为据我所知(和Google一样)have_rows()不是WordPress函数调用。

如果是来自ACF的have_rows(),它会返回一个布尔值,顾名思义。这使您的问题更加困难,因为您需要知道在开始循环之前有多少行。

你可以在主循环之前快速循环,计算行数,然后决定CSS需要哪个类。它并不是最佳的,但老实说,在某些时候你必须指望他们做出决定。

计算完毕后,您可以决定,设置变量,然后在现有循环内部,使用新创建的变量。

非常确定你必须在循环之间用wp_reset_query()重置循环。我可能错了。

HTH,

= C =