如何每隔2个和5个结果拆分循环?

时间:2015-01-02 作者:Night

我正在尝试使用此布局显示我的WP循环:

(POST 1) (POST 2)/
(POST 3) (POST 4) (POST 5)/
(POST 6) (POST 7)/
(POST 8) (POST 9) (POST 10)
如此下去。有什么想法吗?非常感谢你。

2 个回复
SO网友:Hasin Hayder

是的,您可以在循环中使用$wp\\u query->current\\u post来完成此操作。它返回循环内的当前posts索引号(从0开始)。查看以下代码块

<?php
global $wp_query;
while(have_posts()){
    the_post();
    the_title();
    //do your other stuff

    if($wp_query->current_post==1){
        //do what you want to do after 2nd post
    }else if($wp_query->current_post==5){
        //do what you want to do after 6th post
    }
}

SO网友:Night

在朋友的帮助下,我得到了解决方案:

<?php
        $line = 1;
        $col = 1;
        while(have_posts()) : the_post();
        if ($line % 2 == 0) {
            $class = \'grid_2\'; // class for the 3 smaller posts
        } else {
            $class = \'grid_3\'; // class for the 2 bigger posts
        }
    ?>
        <div class="<?php echo $class; ?>">
            <a href="<?php the_permalink(); ?>"><h3><?php the_title(); ?></h3></a>
            <?php the_excerpt(); ?>
        </div>
    <?php
        if (($col == 2 ) || ($col == 5 )) {
            $line++;
            if ($col == 5) {
                $col = 0;
            }
        }
        $col++;
        endwhile;
    ?>

结束

相关推荐

Split loop into columns

我正在尝试将循环拆分为4列。我的逻辑有很大的缺陷,我的布局也有问题。这么简单的问题,但我正在努力解决。我基本上需要将每组四根柱子包装在一个容器“行”分区中。当然,剩下的任何柱子,即使少于四根,也要进行包装。<div class=\"twelve columns\"> <?php $i = 0; if (have_posts() ) : while ( have_posts() ) : the_post();