我知道这很简单,但无法用循环中的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。
非常感谢
答案 0 :(得分:3)
正是安迪所说的,在代码中添加代码$counter++;
,在while循环中。
例如,在您的代码中:
</div>
<?php $counter++; ?>
<?php endwhile; ?>
这显示了在示例中将它放在两个现有行之间的位置。
答案 1 :(得分:0)
您应该在循环中向计数器添加一个,例如$counter++
,然后关闭此问题。