0

我知道这有点容易,但无法用 wordpress while 循环解决问题。我正在使用 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。

非常感谢

4

2 回答 2

3

完全按照安迪所说的去做,$counter++;在你的代码中添加代码,在 while 循环中。

例如,在您的代码中:

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

这显示了在您的示例中将其放在两条现有行之间的位置。

于 2013-03-08T01:25:15.460 回答
0

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

于 2012-11-26T07:42:50.153 回答