第二次循环为wordpress同时循环

时间:2012-11-26 07:40:22

标签: wordpress while-loop zurb-foundation

我知道这很简单,但无法用循环中的wordpress解决问题。我正在使用zurb框架和使用以下html结构的产品列表。

<div class="row">
    <div class="four columns">
        item here
    </div>
    <div class="four columns">
        item here
    </div>
    <div class="four columns">
        item here
    </div>
</div>

所以在while循环中我想在每三个四列div之后重复整个结构。我试过下面的代码

    

    <?php
        $temp = $wp_query;
        $wp_query = null;
        $wp_query = new WP_Query();
        $wp_query->query('post_type=product' . '&paged=' . $paged .'');
    ?>

    <?php $counter = 0;

    if ( have_posts() ) : while ( have_posts() ) : the_post();
        if ($counter % 3 == 0):
        echo '<div class="row"><!--row starts here-->';
        endif; ?>

        <div class="four columns">
            <article>

                <header>
                    <hgroup>
                        <h2><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'foundation' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
                        <h6>Written by <?php the_author_link(); ?> on <?php the_time(get_option('date_format')); ?></h6>
                    </hgroup>
                </header>

                <?php if ( has_post_thumbnail()) : ?>
                <a href="<?php the_permalink(); ?>" class="th" title="<?php the_title_attribute(); ?>" ><?php the_post_thumbnail(); ?></a>
                <?php endif; ?>

                <?php the_excerpt(); ?>

            </article>

        </div>

        <?php endwhile; ?>

    <?php else : ?>

        <h2><?php _e('No posts.', 'foundation' ); ?></h2>
        <p class="lead"><?php _e('Sorry about this, I couldn\'t seem to find what you were looking for.', 'foundation' ); ?></p>

    <?php endif;

    if ($counter % 3 == 0):
        echo '</div><!--row end here-->';
    endif; ?>

    <?php foundation_pagination(); ?>

</div>
<!-- End Main Content -->

但它错误地重复并且每个循环都在重复。我知道重复这一点是显而易见的,但解决方法是我无法找到如何仅在3个四列之后重复并且在第一个循环行中也应该插入div。

非常感谢

2 个答案:

答案 0 :(得分:3)

正是安迪所说的,在代码中添加代码$counter++;,在while循环中。

例如,在您的代码中:

</div>
<?php $counter++; ?>
<?php endwhile; ?>

这显示了在示例中将它放在两个现有行之间的位置。

答案 1 :(得分:0)

您应该在循环中向计数器添加一个,例如$counter++,然后关闭此问题。