如何在php循环中的每个第n项添加一个类(wordpress)

时间:2012-10-02 20:51:28

标签: php css wordpress loops

我有一个Wordpress循环如下:

<?php $loop = new WP_Query( array( 'post_type' => 'portfolio' ) ); ?>
    <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <div class="four columns">
        <?php the_content(); //along with other stuff in looped div ?>
    </div>
<?php endwhile ?>

如何使用php为每个(4n-3)div(div.four.columns)和'omega'类添加'alpha'类到每个(4n)项?

谢谢(很多!), 杰米

2 个答案:

答案 0 :(得分:24)

为什么不添加一个计数器并使用模数方法在每一列中了解您当前正在回应的元素。

假设您指定了4列 你从counter = 1开始 1%4 = 1(你在第一个元素中)
2%4 = 2(你在第二个元素)
3%4 = 3(你在第三个元素)
4%4 = 0(你在第四个元素)
5%4 = 1(你在第一个元素中)
6%4 = 2(你在第二个元素中)

您只需使用类如下的If语句

<?php $counter = 1 ?>
<?php $loop = new WP_Query( array( 'post_type' => 'portfolio' ) ); ?>
    <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <div class="four columns <?php if ($counter % 4 == 1){echo 'alpha'}else if ($counter % 4 == 0){echo 'omega'} ?>">
        <?php the_content(); //along with other stuff in looped div ?>
    </div>
<?php $counter++ ; 
endwhile ?>

答案 1 :(得分:1)

所作评论的实施:

<?php $loop = new WP_Query( array( 'post_type' => 'portfolio' ) ); ?>
    <?php
        $i = 0;
        while ( $loop->have_posts() ) : $loop->the_post(); 
           if( $i % 4 == 0 )
             $class = 'omega';
           else
             $class = ''; 
        ?>
    <div class="four columns <?php echo $class ?>">
        <?php 
           the_content(); // Along with other stuff in looped div
           $i++;
        ?>
    </div>
<?php endwhile ?>