【发布时间】:2015-07-16 09:58:48
【问题描述】:
我有一个输出 9 个项目的查询。我想每 3 个项目包装一个 div,所以我创建了一个简单的计数器:
if ($counter == 1 || $counter == 4 || $counter == 7){
echo '<div class="client-logo-wrapper">';
}
echo '<img src="'.get_field('client_logo').'" />';
if ($counter == 3 || $counter == 6 || $counter == 9){
echo '</div>';
}
因为查询总是输出 9 个项目(并且有很多项目),所以它可以正常工作。但是我有另一个新查询可以输出任意数量的项目。它通常是 3+,但也可能是 4、9、25 等。
如何调整上述循环以尝试将每 3 个项目包装在一个 div 中,但如果它不够,还是只包装在一个 div 中?
例如,如果有 8 个项目,它应该将它们包装在三个 div 中,一个 3,另一个 3,最后一个只有 2。
这是 wordpress 查询的完整代码:
<?php
$counter = 1;
$the_query = new WP_Query(
array(
'post_type' => 'client',
'post_status' => 'publish',
'posts_per_page' => 9
)
);
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
if ($counter == 1 || $counter == 4 || $counter == 7){
echo '<div class="client-logo-wrapper">';
}
echo '<img src="'.get_field('client_logo').'" />';
if ($counter == 3 || $counter == 6 || $counter == 9){
echo '</div>';
}
$counter++;
}
}
wp_reset_postdata();
?>
【问题讨论】:
-
查看我的分析器here。基本上是一样的,只是
$limit是 3 而你有<div>而不是<tr>。应该向您展示它是如何完成的。