在循环内输出2个项目

时间:2013-05-02 作者:Romes

我有一个循环查询<li>\'并显示<li>\'我有。有什么方法可以让环拉动2吗<li>\'一次是一个,而不是一个?

// 5 list items
<ul>
<?php while(has_posts()): the_post(); ?>
    <li>
        <div class="slide"><?php the_content(); ?></div>
    </li>
<?php endwhile; ?>
</ul>
输出

<ul>
    <li><div class="slide">content 1</div></li>
    <li><div class="slide">content 2</div></li>
    <li><div class="slide">content 3</div></li>
    <li><div class="slide">content 4</div></li>
    <li><div class="slide">content 5</div></li>
</ul>
以及我希望它如何输出。。。

<ul>
   <li>
       <div class="slide">
           content 1
           content 2
       </div>
   </li>
   etc...
</ul>
我希望你明白我想做什么。

谢谢

2 个回复
最合适的回答,由SO网友:Sagive 整理而成

易于使用WP query (了解它……)

<ul>
    <?php
        $recentPosts = new WP_Query();
        $recentPosts->query(\'showposts=2\'); // SET AMOUNT HERE
    ?>
    <?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
        <li><div class="slide"><?php the_content(); ?></div></li>
    <?php endwhile; ?>
</ul>
希望这有帮助。如果您遇到任何问题,请告诉我。

<小时>EDIT 1:
*解释-只添加了一个小的条件计数器

<ul>
    <?php 
        $count = 1;
        while(has_posts()): the_post(); 
    ?>

        <?php if ($count == 1) {echo \'<li><div class="slide">\';} ?>
        <?php the_content(); ?>
        <?php if ($count == 3) {echo \'</div></li>\'; $count = 1;} else {$count++;} ?>

    <?php endwhile; ?>
</ul>
<小时>EDIT 2:
*请注意,我已将has\\u post更改为have\\u post(认为应该是那样吗?您的电话)

<?php 
    echo \'<ul>\';
    $count = 1;

    while(have_posts()): the_post(); 

    if ($count == 1) {$slideOpenTag = \'<li><div class="slide">\';} else {$slideOpenTag = \'\';}
    if ($slideOpenTag) {echo $slideOpenTag;}

    the_content();

    if ($count == 3) {$slideCloseTag = \'</div></li>\'; $count = 1;} else {$count++; $slideCloseTag = \'\';}
    if ($slideCloseTag) {echo $slideCloseTag;}

    endwhile;
    if (!$slideCloseTag) {echo \'</div></li>\';}
    echo \'<ul>\';        
?>

SO网友:Charles Clarkson

在上绘制Sagive SEO\'在不使用计数器的情况下,这似乎也能正常工作。

echo \'<ul>\';

while ( have_posts() ) {
    echo \'<li><div class="slide">\';

    the_post();
    the_content();

    // If there is 1 more post, advance current post and add its content.
    if ( $wp_query->current_post + 1 < $wp_query->post_count ) {
        the_post();
        the_content();
    }

    echo \'</div></li>\';
}

echo \'</ul>\';
WordPress功能the_post() 推进$wp\\u query object post索引,就像next\\u post()一样WP_Query object 方法执行。向\\u post()添加第二个调用会影响have\\u posts()函数的值。

此循环每个循环处理两个帖子,而不是一个帖子,除非返回奇数个帖子,在这种情况下,条件为false,并且在最后一个循环过程中只处理最后一个帖子。

编辑:7篇文章的数学部分。

$wp\\U查询->post\\U计数=7

$wp\\u query->current\\u post当前显示的帖子的索引(从0开始)。

通过一个。第一个the_post() 初始化$wp_query->current_post 到0。如果(0+1<;7)。有条件的the_post() 增量$wp_query->current_post 至1。

通过二级。第一个the_post() 增量$wp_query->current_post 至2。如果(2+1<;7)。有条件的the_post() 增量$wp_query->current_post 至3。

通过三级。第一个the_post() 增量$wp_query->current_post 至4。如果(4+1<;7)。有条件的the_post() 增量$wp_query->current_post 至5。

通过四级。第一个the_post() 增量$wp_query->current_post 至6。如果(6+1<;7)。条件为false,不执行。

结束