我如何从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 上课时要有不同的风格。您还可以加载不同的内容、内容的不同顺序/类别、不同的图像大小等。

结束

相关推荐

QUERY_POSTS结果与wp_QUERY请求结果不同

我有一个多站点Wordpress设置(3.5.1,我不能冒险更新),在切换到正确的博客后,我正在查询一些帖子。我有一个带有以下参数的query\\u posts函数:$posts = query_posts(\'posts_per_page=5&paged=1&post_status=publish&orderby=date&order=desc\'); 通过此帖子查询,query\\u vars变为($GLOBALS[\'wp_query\']->quer