我如何从5个帖子的查询中获得1个最新帖子? 时间:2013-12-18 作者:Tom Oakley 所以我有一个wp_query 这是从我的Wordpress网站上获得的5篇最新帖子。我想做的是在这个查询中,抓取最新的帖子并将其显示为一种“英雄”帖子,然后获取其他4篇帖子(如果我以后更改查询,可能会超过4篇),并在这个英雄帖子下面的列表或网格中显示。以下是我迄今为止的查询代码(明显简化):<?php $query_args = array( "posts_per_page" => "5" ); $listedPosts = new WP_Query($query_args); // the loop if ( $listedPosts->have_posts() ) { while ( $listedPosts->have_posts() ) { $listedPosts->the_post(); // loop content for hero post goes here (I need to get the most recent post). } } // how would I show the other remaining posts in the query? ?> 3 个回复 SO网友:gmazzap You can use $current_post property of WP_Query$query_args = array( "posts_per_page" => "5" ); $listedPosts = new WP_Query($query_args); // the loop if ( $listedPosts->have_posts() ) { while ( $listedPosts->have_posts() ) { $listedPosts->the_post(); if ( (int) $listedPosts->current_post === 0 ) { // loop content for hero post } else { // loop content for remaining posts } } } SO网友:sri 将您的查询参数更改为如下所示,将按修改日期排序您的帖子。$query_args = array( "posts_per_page" => "5", "orderby" => "modified", "order" => "DESC" ); 然后,您可以在循环中使用简单的if-else条件,并将第一篇文章打印为英雄,其余的则打印为英雄。 SO网友:Eric Holmes 一个简单的boolean 触发器将执行此操作。<?php $query_args = array( "posts_per_page" => "5" ); $listedPosts = new WP_Query($query_args); // the loop if ( $listedPosts->have_posts() ) { $first_post = true; while ( $listedPosts->have_posts() ) { $listedPosts->the_post(); if( $first_post ) { $first_post = false; echo \'<div class="post first">\'; // loop content for hero post goes here (I need to get the most recent post). echo \'</div>\'; } else { echo \'<div class="post">\'; // Rest of the posts. echo \'</div>\'; } } } ?> 然后使用.post.first 上课时要有不同的风格。您还可以加载不同的内容、内容的不同顺序/类别、不同的图像大小等。 结束 文章导航