0

これを始めるために何を検索すればよいか、本当に困っています。

2つの投稿を1つのループで出力できるようにしたいので、一度に2つの投稿をDIVラップできます...

以下で行ったことは純粋な例にすぎません。何をする必要があるかを説明しようとしています。チュートリアルを見つける方法や場所を知っている人がいれば、それは素晴らしいことです! ありがとう。

ループ

@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>


再度、感謝します!!

4

2 に答える 2

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

于 2012-04-14T15:02:27.433 に答える
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)

于 2012-04-14T02:00:31.973 に答える