首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输出循环内容在一个循环中两次?

输出循环内容在一个循环中两次?
EN

Stack Overflow用户
提问于 2012-04-14 00:22:31
回答 2查看 627关注 0票数 0

我真的困在寻找什么东西来开始这件事了。

我希望能够在一个循环中输出两个帖子,所以我可以一次将两个帖子包装起来.

下面我所做的只是一个纯粹的例子--我试图解释我需要它做什么。如果有人知道一个方法或哪里我可以找到一个教程,那将是可怕的!谢谢。

循环

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

代码语言:javascript
复制
<?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是什么样子-由于某种原因,它是复制后1,2,3和4?奇怪!

代码语言:javascript
复制
<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>

再次感谢!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-14 02:00:31

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

代码语言:javascript
复制
<?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
EN

Stack Overflow用户

发布于 2012-04-14 15:02:27

Wordpress内置了计数循环和回绕post的功能。

要计数您的循环,请使用:

代码语言:javascript
复制
//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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10149924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档