2012-04-14 85 views
0

我真的停留在寻找什么来获得开始。在一个循环中输出两次循环内容?

我希望能够输出在一个循环中2个职位,这样我就可以DIV包装2个员额一次......

我已经做了以下仅仅是纯粹的例子 - 我想解释我需要做什么。 如果有任何知道的方式或我可以找到教程的地方,那将非常棒!谢谢。

循环

感谢@Rob帮助我走这么远,但它似乎输出重复古怪......

<?php $latest = new WP_Query(array(

    'category_name' => 'news', 
    'order'   => 'DESC', 
    'orderby'  => 'date', 
    'posts_per_page' => 6 

)); ?> 

<?php $i = 0; if ($latest->have_posts()) : while ($latest->have_posts()) : $latest->the_post(); ?> 

    <?php $odd = ++$i % 2; ?> 

    <?php if($odd) : ?> 
    <div class="dual-post-wrapper"> 
    <?php endif; ?> 

     <div class="post-<?php the_ID(); ?>"> 

      <?php the_content(); ?> 

     </div> 

    <?php if(!$odd) : ?> 
    </div> 
    <?php endif; ?> 

<?php endwhile; unset($latest); endif; ?> 


失推杆HTML

这就是输出编辑HTML看起来像 - 由于某些原因,它是复制后1,2,3和4 ???奇怪的!再次

<div class="dual-post-wrapper"> 

    <div class="post-1"> 

     Post 1 Content 

    </div> 

    <div class="post-2"> 

     Post 2 Content 

    </div> 

</div> 

<div class="dual-post-wrapper"> 

    <div class="post-3"> 

     Post 3 Content 

    </div> 

    <div class="post-4"> 

     Post 4 Content 

    </div> 

</div> 

<div class="dual-post-wrapper"> 

    <div class="post-5"> 

     Post 5 Content 

    </div> 

    <div class="post-6"> 

     Post 6 Content 

    </div> 

</div> 

<div class="dual-post-wrapper"> <!-- these are duplicates?? --> 

    <div class="post-1"> 

     Post 1 Content 

    </div> 

    <div class="post-2"> 

     Post 2 Content 

    </div> 

</div> 

<div class="dual-post-wrapper"> <!-- these are duplicates?? --> 

    <div class="post-3"> 

     Post 3 Content 

    </div> 

    <div class="post-4"> 

     Post 4 Content 

    </div> 

</div> 


谢谢!

回答

0

您可以用一个简单的计数器和模数来实现这一点。

<?php $i = 0; if (have_posts()) : while (have_posts()) : the_post(); ?> 
<?php $odd = ++$i % 2; ?> 

    <?php if($odd) : ?> 
     <div class="dual-post-wrapper"> 
    <?php endif; ?> 

      <div class="post-<?php the_ID(); ?>"> 
         <?php the_content(); ?> 
      </div> 

    <?php if(!$odd) : ?> 
     </div> 
    <?php endif; ?> 

<?php endwhile; endif; ?> 

这应该工作,如果你总是有偶数的职位。你应该预先计算帖子的数量并关闭div if(!$odd || $last)

+0

谢谢你抢,非常感谢您的帮助 - 我想你的代码(我有更新我上面的帖子),但由于某些原因,它是复制前四个帖子。所以当它在技术上只应该输出3时输出5个双后置包装?这就是它应该显示1 + 2 3 + 4 5 + 6,但它输出这个... 1 + 2 3 + 4 5 + 6 1 + 2 3 + 4 ...奇怪?感谢罗布 – Joshc 2012-04-14 14:59:40

+0

我是这样一个冲洗,不理我 - 这是我的jquery创造的愚蠢。工作完美谢谢! – Joshc 2012-04-14 15:38:19

1

WordPress的内置函数用于计算循环和倒回帖子。

要算你循环使用:

//Create a custom query var: 

$displayposts = new WP_Query(); 

//start loop with it 
<?php if ($displayposts->have_posts()) :while ($displayposts->have_posts()) : $displayposts->the_post(); 

//count it 
$count_id = $displayposts->current_post + 1; 

//loop stuff <?php endwhile; else:?> 

//rewind the post 
rewind_posts(); 

http://codex.wordpress.org/Function_Reference/rewind_posts

+0

谢谢@Wyck,但我不知道这对我是如何工作的 - 我不能设想在哪里放置包装两个职位的双后包装div - 对于像我这样的初学者来说Codex没有太多例子。 – Joshc 2012-04-14 15:21:57

相关问题