2012-04-14 88 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

相關問題