2012-04-14 32 views
0

私は本当にこの上の開始を取得するために検索するかにこだわって。ループの内容を1ループで2回出力しますか?

私は以下のやったことがちょうど純粋な例である私は1つのループで出力2のポストにできるようにしたいので、私は一度に2つのポストを包むDIVすることができます...

- 私がしようとしています私がそれが必要なことを説明してください。 方法がわかっていたり、チュートリアルが見つかる場所があれば、それはすごいでしょう!ありがとう。 ...

LOOP

おかげで、私ははるかにこれを取得助けるため@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; ?> 


THE OUTパットHTML

これは何outputtですエド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; ?> 

あなたは常に偶数の投稿を持っているとうまくいくはずです。おそらく、Wordpressのは、ループをカウントし、ポストを巻き戻すための機能が組み込まれていif(!$odd || $last)

+0

はずっとあなたの助けのために感謝、あなたにロブをありがとう - 私は(私は上記の私の記事を更新していた)あなたのコードを試してみましたが、何らかの理由でそれはです最初の4つの投稿を複製します。したがって、技術的に3つしか出力しない場合、5つのデュアルポストラッパーを出力しますか?これは、1 + 2 3 + 4 5 + 6と表示する必要がありますが、その出力は... 1 + 2 3 + 4 5 + 6 1 + 2 3 + 4 ... strange ??ありがとうございましたRob – Joshc

+0

私はそのような居眠りです、私を無視する - それは私のjqueryは、房を作成していた。完璧に働いてくれてありがとう! – Joshc

1

を手前にポストの数をカウントし、DIVを閉じる必要があります。

あなたのループの使用をカウントするには、次の

//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が、私は、これは私のために働くだろうか見カント - 2つのポストをラップデュアルポストラッパーのdivをどこに置くか私が想定カント - コーデックスは、私のような初心者のための多くの例がありません。 – Joshc

関連する問題