Custom loop off by one post

时间:2011-05-10 作者:Eeyore

在我的循环中,我想显示9篇不包括类别X、Y、Z和所有粘性帖子的帖子。

在帖子3和5之间,我想放置一个带有自定义模板的粘性帖子。

以下操作有效,但它将粘性帖子视为第一个循环中的4个帖子,这会导致丢失一个常规帖子。

我必须使用WP 3.0.3

<?php if (have_posts()) : ?>
    <?php $count = 0;?>
    <?php
      $sticky_posts = get_option(\'sticky_posts\');
      $arguments = array(
          \'posts_per_page\' => 9,
          \'post__not_in\'  => $sticky_posts,
          \'category__in\'  => array(1,2,3,4,5)
      );
    ?>
    <?php query_posts( $arguments );?>

    <?php while (have_posts()) : the_post(); ?>

        <?php $count++; ?>

        <?php if ($count == 4) : ?>

            <?php
              $sticky = get_option(\'sticky_posts\');
              $args = array(
                  \'posts_per_page\' => 1,
                  \'post__in\'  => $sticky
              );
              ?>
              <?php query_posts( $args );?>

              <?php while (have_posts()) : the_post(); ?>

              <h1>Latest Sticky Post</h1>
              <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
              <?php the_excerpt(); ?>

              <?php endwhile; ?>
              <?php wp_reset_postdata(); ?>

        <?php else : ?>

            <h1>Regular Post</h1>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            <?php the_excerpt(); ?>

        <?php endif; ?>
    <?php endwhile;  ?>
<?php endif; ?>

1 个回复
SO网友:Milo

柜台上不需要if/else,只要检查一下$count == 35 要注入粘性贴子,请在循环的每次迭代中插入一个常规贴子,并增加底部的计数器。

结束

相关推荐