【问题标题】:Wordpress query to wrap every three items, unless uneven numberWordpress 查询每三个项目换行一次,除非是奇数
【发布时间】: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 而你有 &lt;div&gt; 而不是 &lt;tr&gt;。应该向您展示它是如何完成的。

标签: php wordpress


【解决方案1】:

使用模运算符:

if ($counter % 3 == 0 ){

}

3的倍数时为0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-23
    • 2016-06-23
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多