Wordpress粘贴帖子在第一篇文章之后

时间:2012-09-11 23:00:15

标签: php wordpress loops posts sticky

我一直在尝试在第二个(或第三个等)位置进行单个粘性帖子显示,而不是默认值,这是第一个。

我一直在玩这个循环几个小时,但我总是遇到问题。

这是我到目前为止所做的:

  <!-- Wordpress Main Loop Start -->
  <?php  query_posts(array("post__not_in" =>get_option("sticky_posts"))); ?>
  <?php if ( have_posts() ) : $loop_count = 0; while ( have_posts() ) : the_post(); $loop_count++; ?>
  <div <?php post_class(); ?>>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <div class="byline postinfo">by <?php the_author_posts_link(); ?></div>
    <div class="postdate postinfo"><?php the_time('l F d, Y'); ?></div>
    <div class="commentscounter postinfo"><a href="<?php comments_link(); ?>"><?php comments_number('0', '1', '%'); ?></a></div>
    <?php
      if ($loop_count == 2) : 
      $sticky = get_option( 'sticky_posts' ); 
      query_posts( 'p=' . $sticky[0] );
      wp_reset_query();
      else:
      the_excerpt('Read More...'); 
      endif;
    ?>
  </div>
  <?php endwhile; else: ?>
    <p><?php _e('No posts were found. Sorry!'); ?></p>
  <?php endif; ?>

  <div class="navi">
    <div class="right">
      <?php previous_posts_link('Previous'); ?> / <?php next_posts_link('Next'); ?>
    </div>
  </div>
  <!-- Wordpress Main Loop End -->

我所做的是:

  1. 我使用query_posts()过滤掉循环中的所有粘贴帖子。
  2. 使用循环来获取帖子和一个计数器,每当提取一个帖子时它都会递增。
  3. 在显示提取的帖子的div上,我添加了一个if语句,用于检查计数器是否是特定的数字,如果是,则重写query_posts并获取粘性的。如果没有,则显示已提取的帖子。
  4. 然后我重置了查询,循环继续(几乎)。
  5. 问题是,在计数达到我想要的值之后,循环而不是从最后一个帖子继续,它从头开始。

    如果我删除了wp_reset_query()函数,那么当找到粘贴帖子时,循环就会停止。

    如果我尝试重写查询以包含所有帖子,我会得到无限循环,因为我已经在循环中。

    我不想在两个或三个中断循环,所以如果有人可以使用一个循环帮助解决这个问题,那就太棒了!

0 个答案:

没有答案