PHP 循环 : Bootstrap Slider Add div with item class every 3 item and the first one will have active

标签 php html css twitter-bootstrap bootstrap-slider

我的当前代码正在呈现额外的 div。你能帮我解决一下吗?

每 3 个元素将在一个 div 中,上面有 item 类,第一个元素将有 active 类。

<!-- Carousel items -->
<div class="carousel-inner">

  <div class="item active">
      <div class="row">
          <?php
              $args = array(
                  'post_type' => 'product',
                  'product_cat' => 'Featured',
                  'posts_per_page' => 12
              );
              $loop = new WP_Query( $args );
              if ( $loop->have_posts() ) {
                  $postcount = 0;
                  $i = 1;
                  while ( $loop->have_posts() ) : $loop->the_post();
                  $postcount ++;
          ?>
          <div class="col-md-4 item-entry-index">
              <div class="car-index">
                  <img src="<?php echo get_the_post_thumbnail_url($loop->post->ID); ?>" class="img-responsive" alt=""/>
              </div>
          </div>
          <?php
              if ( $i % 3 === 0 ) {
                  echo '</div></div><div class="item"><div class="row">';
              }
          ?>
          <?php
              $i++;
              endwhile;
              } else {
                  echo __( 'No products found' );
              }
              wp_reset_postdata();
          ?>
      </div>
  </div>

</div><!--.carousel-inner-->

最佳答案

据我了解您的代码,您每页显示 12 个帖子。当您显示第 12 个(最后一个)帖子(除以 3)时,您关闭了 .item.row div。同时,你打开新.item.row div。就在那之后while循环结束,您的最后一篇文章将如下所示:<div class="item"><div class="row"></div></div> .这就是问题所在。因此,您还需要检查帖子是否是帖子数组中的最后一项。我扩展了你的if声明如:if ($i % 3 === 0 && $i < $args['posts_per_page']) { ... } .希望对您有所帮助。

<!-- Carousel items -->
<div class="carousel-inner">

  <div class="item active">
      <div class="row">
          <?php
              $args = array(
                  'post_type' => 'product',
                  'product_cat' => 'Featured',
                  'posts_per_page' => 12
              );
              $loop = new WP_Query( $args );
              if ( $loop->have_posts() ) {
                  $postcount = 0;
                  $i = 1;
                  while ( $loop->have_posts() ) : $loop->the_post();
                  $postcount ++;
          ?>
          <div class="col-md-4 item-entry-index">
              <div class="car-index">
                  <img src="<?php echo get_the_post_thumbnail_url($loop->post->ID); ?>" class="img-responsive" alt=""/>
              </div>
          </div>
          <?php
              if ( $i % 3 === 0 && $i < $args['posts_per_page']) {
                  echo '</div></div><div class="item"><div class="row">';
              }
          ?>
          <?php
              $i++;
              endwhile;
              } else {
                  echo __( 'No products found' );
              }
              wp_reset_postdata();
          ?>
      </div>
  </div>

</div><!--.carousel-inner-->

关于PHP 循环 : Bootstrap Slider Add div with item class every 3 item and the first one will have active,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55554699/

相关文章:

html - 如何为微数据嵌套 &lt;meta&gt; 标签?

javascript - 如何将 align 属性添加到这行代码(内联) - HTML、JavaScript 和 jQuery

html - 我如何调整圆半径以适合其中的段落

css - 具有响应图像的复杂网格不起作用

javascript - 如何使当前页面的动画链接带有下划线?

php - PTR记录困惑

php - 使用 redis 和 php 发送电子邮件

javascript - AngularJS 不显示 MySQL 结果 *已编辑

php - Doctrine 级联实体清理

html - 在一个div中垂直平均划分段落