如何从post_type显示第一个帖子,然后在下一个数组中跳过它

时间:2013-08-09 06:55:13

标签: wordpress

我正在尝试以某种方式显示post_type中的帖子:显示带有查询的第一个帖子类型,然后在下一个查询中跳过第一个帖子并显示第二个帖子,依此类推。

我试图用偏移来做这个,第一篇文章显示但下一个没有显示。是否有更优雅的方式来实现这个目标?

        <div class="tableCell">
          <?php
          $args = array( 'post_type' => 'service', 'offset' => 1);  
          $loop = new WP_Query( $args );
          while ( $loop->have_posts() ) : $loop->the_post(); ?>
          <div class="flip">
              <a href="#">
                  <div class="flip-front">
                      <div class="imgHolder">
                <?php the_post_thumbnail(); ?>
                </div>
                <h3><?php the_title(); ?></h3>
                  </div>
                  <div class="flip-back">
                      <div class="imgHolder">
                <?php the_post_thumbnail(); ?>
                </div>
                <h3><?php the_title(); ?></h3>
                  </div>
              </a>
          </div>
          <?php endwhile; ?>
        </div>

        <div class="tableCell">
          <?php
          $args = array( 'post_type' => 'service', 'offset' => 2);  
          $loop = new WP_Query( $args );
          while ( $loop->have_posts() ) : $loop->the_post(); ?>
          <div class="flip">
              <a href="#">
                  <div class="flip-front">
                      <div class="imgHolder">
                <?php the_post_thumbnail(); ?>
                </div>
                <h3><?php the_title(); ?></h3>
                  </div>
                  <div class="flip-back">
                      <div class="imgHolder">
                <?php the_post_thumbnail(); ?>
                </div>
                <h3><?php the_title(); ?></h3>
                  </div>
              </a>
          </div>
          <?php endwhile; ?>
        </div>

1 个答案:

答案 0 :(得分:1)

对于初学者 - 当您在一个页面上有多个wp_reset_postdata时,使用wp_queries是健康的。

就你的问题而言。第一个帖子类型不需要偏移量,第二个帖子类型应该偏移1(减去第一个)

<div class="tableCell">
          <?php
          $args = array( 'post_type' => 'service', 'posts_per_page' => 1);  
          $loop = new WP_Query( $args );
          while ( $loop->have_posts() ) : $loop->the_post(); ?>
          <div class="flip">
              <a href="#">
                  <div class="flip-front">
                      <div class="imgHolder">
                <?php the_post_thumbnail(); ?>
                </div>
                <h3><?php the_title(); ?></h3>
                  </div>
                  <div class="flip-back">
                      <div class="imgHolder">
                <?php the_post_thumbnail(); ?>
                </div>
                <h3><?php the_title(); ?></h3>
                  </div>
              </a>
          </div>
          <?php endwhile; wp_reset_postdata(); ?>
        </div>
<div class="tableCell">
          <?php
          $args2 = array( 'post_type' => 'service', 'offset' => 1);  
          $loop2 = new WP_Query( $args2 );
          while ( $loop2->have_posts() ) : $loop2->the_post(); ?>
          <div class="flip">
              <a href="#">
                  <div class="flip-front">
                      <div class="imgHolder">
                <?php the_post_thumbnail(); ?>
                </div>
                <h3><?php the_title(); ?></h3>
                  </div>
                  <div class="flip-back">
                      <div class="imgHolder">
                <?php the_post_thumbnail(); ?>
                </div>
                <h3><?php the_title(); ?></h3>
                  </div>
              </a>
          </div>
          <?php endwhile; wp_reset_postdata(); ?>
        </div>