如何在WordPress中显示某个类别中的第二个和第三个最新帖子

时间:2014-04-07 14:54:24

标签: wordpress

我正在显示我主页上最近三篇新闻文章的预览。最新帖子将以与第二和第三个最新帖子不同的格式显示。 我目前正在使用以下代码显示所有三个相同的

<?php query_posts('cat=2 && showposts=3'); 
                    if (have_posts()) : while (have_posts()) : the_post(); ?>
                        <div class="col-xs-12 col-sm-4">
                            <div class="column">
                                <div class="news-article">
                                    <p class="news-date"><?php the_time( get_option( 'date_format' ) ); ?></p>
                                    <a href="<?php the_permalink(); ?>">
                                        <?php if ( has_post_thumbnail() ) { the_post_thumbnail('full', array( 'class' => 'img-responsive img-rounded news-img' )); } ?>
                                        <p class="news-headline"><?php the_title(); ?></p>
                                    </a>
                                    <p><?php the_excerpt(); ?></p>
                                    <a href="<?php the_permalink(); ?>">
                                        <p class="pull-right">Read more...</p>
                                    </a>
                                    <span class="clearfix"></span>
                                </div>
                            </div>
                        </div>
                    <?php
                    endwhile;
                    endif;
                    ?>

如何添加另一个循环,将最新帖子中的第二个和第三个帖子分开? 我不想使用postID,因为帖子会改变。

3 个答案:

答案 0 :(得分:1)

下面的WP_Query函数中的两个参数组合起来以获取最近的第二个帖子,然后下面的HTML显示该帖子。

<div class="video-message">
  <p>
  <ul>
  <!-- // Define our WP Query Parameters -->
  <?php 
  $the_query = new WP_Query( array( 'posts_per_page' => 1,'offset' => 1 ) ); 
  ?>

  <!-- // Start our WP Query -->
  <?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>

  <!-- // Display the Post Title with Hyperlink -->
  <p><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></p>

  <?php 
  endwhile;
  wp_reset_postdata();
  ?>
  </ul>
  </p>
 </div> 

</div>

要显示最近的第三条帖子,需要将偏移量值更改为2,以便程序跳过两个最新的帖子。

$the_query = new WP_Query( array( 'posts_per_page' => 1,'offset' => 2 ) ); 

在WordPress代码参考的Pagination Parameters section中讨论了此方法。

答案 1 :(得分:0)

未经测试但您可以尝试:

    <?php 
    $count = 0;
    query_posts('cat=2 && showposts=3'); 
    if (have_posts()) : while (have_posts()) : the_post(); 
    if($count == 0)
    {
    ?>
        <div class="col-xs-12 col-sm-4">
            <div class="column">
                <div class="news-article">
                    <p class="news-date"><?php the_time( get_option( 'date_format' ) ); ?></p>
                    <a href="<?php the_permalink(); ?>">
                    <?php if ( has_post_thumbnail() ) { the_post_thumbnail('full', array( 'class' => 'img-responsive img-rounded news-img' )); } ?>
                    <p class="news-headline"><?php the_title(); ?></p>
                     </a>
                     <p><?php the_excerpt(); ?></p>
                    <a href="<?php the_permalink(); ?>">
                    <p class="pull-right">Read more...</p>
                    </a>
                    <span class="clearfix"></span>
                </div>
            </div>
        </div>
    <?php
    $count = 1;
    }
    else
    {
        //Some other layout here
    }
    endwhile;
    endif;
    ?>

以上内容将检查$count0是否为1,如果是,则进行布局,然后计数将等于$count。因此,下一次else赢得0时,它将运行{{1}}中的内容(这将是您的布局)。

答案 2 :(得分:0)

我像这样使用 WP_Query 来显示第四个最近的所有帖子:

<?php
    $query4 = new WP_Query( 'posts_per_page=4&offset=3' );
?>