Twitter引导转盘在转盘中显示多个项目

时间:2013-07-19 作者:jose

我使用推特引导旋转木马从特定类别中获取帖子。我一直在研究双循环,但我不知道如何实现它。

这是我的循环:

$query = array( \'posts_per_page\' => 4, \'cat\' => 3);
                    $queryObject = new WP_Query($query);
                    $count = 0;
                        if($queryObject):
                            while($queryObject->have_posts() ) : $queryObject->the_post();
                        $count++;
它从第3类中吸引了4个帖子(我现在已经有了)

<div class="item <?php if($count === 1){
                        echo " active";
                    }elseif($count >=4){
                        echo " ";
                    } ?>"> 
                        <div class="span4">
                        <?php the_content();?>
                        </div><!--end of span4-->
                    </div>
我要做的是重复div元素<div class="span4">, 基本上是这样的this. 最初,我用上面的if-else语句<div class="item"> 让班级活跃在前三个岗位和第四个岗位上,什么都没有。这样它就不旋转了,所以我正在尝试这个选项。

<div class="item active">
<div class="span4"><?php the content();?></div>
<div class="span4"><?php the content();?></div>
<div class="span4"><?php the content();?></div>

编辑:由于某种原因,我的代码被删除了。

我尝试过使用双循环功能,但它也不能像我想要的那样工作,也许我的逻辑是关闭的,但使用双循环时,有一个偏移量,我不想要。任何建议都很好。

Pastebin.

谢谢

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

最好的解决方案是创建一个创建输出的函数。在上瘾中,这为使用功能选项提供了更大的灵活性。

经过测试的代码如下:

<?php
function wp_bootstrap_carousel($args = \'\', $visible = 3, $active = 0) {
// cannot show more than 12 items at once
if ( ! intval($visible) || $visible > 12 ) return false;
  $query = new WP_Query($args);
  if ($query->have_posts() ) {
  $i = -1;
  $output = \'\';
      // calculate the span class depending on desired visible items
  $span = floor(12 / $visible);
     // if 12 is not a perfect multiple of visible items, calculate the residue 
  $span_residue = 12%$visible; 
  $slides = 0;
  while ( $query->have_posts() ) :
    $i++;
    $query->the_post();
        // set active only the desired active item
    $item_class = $i == $active ? \'item active\' : \'item\'; 
    $u = ( ($i == 0) || $i % ($visible) == 0 ) ? 0 : $u+1;
    if ( $u == 0 ) {
      $slides ++;
          // open item div if needed
      $output .= sprintf(\'<div class="%s">\', $item_class);
    }
        $output .= sprintf(\'<div class="span%d">%s</div>\', $span, get_the_title() );
        // close item div if needed
    if ( $u == ($visible-1) || $i == ($query->post_count-1) ) { 
      // when on last post we always need to close the current item div,
      // if total is not divisible by visible we insert a "fake" item
      if ( $u != ($visible-1) ) $span_residue += ( ($visible-1) - $u ) * $span;
      if ( $span_residue > 0 ) {
             $output .= sprintf(\'<div class="span%d">&nbsp;</div>\', $span_residue);
          }
      $output .= \'</div>\';
    }
  endwhile;
  return array(\'items\' => $output, \'total\' => $query->post_count, \'slides\' => $slides);
}
return false;
}


// query  args
$args = array(
  \'posts_per_page\' => -1,
  \'cat\' => 3
);

$active = 0; // the slide first visible
$carousel = wp_bootstrap_carousel($args, 5, $active);

if ( is_array($carousel) &&  $carousel[\'total\'] > 0 ) :
?>

<div id="myCarousel" class="carousel slide">
  <ol class="carousel-indicators">
  <?php for ($i = 0; $i < $carousel[\'slides\']; $i++ ) : ?>
    <li data-target="#myCarousel" data-slide-to="<?php echo $i; ?>"<?php if ($i==$active) { ?> class="active"<?php } ?>></li>
  <?php endfor; ?>
  </ol>
  <!-- Carousel items -->
  <div class="carousel-inner">
    <?php echo $carousel[\'items\'];  ?>
  </div>
</div>

<?php endif; ?>

结束

相关推荐

For Each +1 Wordpress Loop

我用一个循环来制作一个滑块。我的代码是<?php query_posts( array( \'post_type\' => \'my_gallery\', \'author\'=>$author->ID ) ); while( have_posts() ) : the_post(); $imagethum = eh_postImage(115, 70); ?> <a data-slide-