如何在最近5个帖子之后获得4个帖子

时间:2012-05-18 作者:Rigel Glen

嗯,我想这个问题可能有点令人困惑。但是,我想得到最近的4篇帖子,忽略最近的前5篇帖子。因此,简而言之,第六、第七、第八和第九条是最近发布的帖子。

2 个回复
最合适的回答,由SO网友:EAMann 整理而成

易于理解的

WordPress提供了一个名为get_posts() 这可以让你以任何顺序获得帖子。大体上get_posts() 默认情况下,将检索最近的5篇文章。

要获得4篇帖子,忽略最近的5篇,您需要设置numberpostsoffset 参数-offset 告诉函数要跳过多少帖子。

$args = array(
    \'numberposts\' => 4,
    \'offset\'      => 5,
    \'orderby\'     => \'post_date\',
    \'order\'       => \'DESC\',
    \'post_type\'   => \'post\',
    \'post_status\' => \'publish\'
);

$posts = get_posts( $args );
现在您有了一个按日期排序的帖子数组,其中包括4篇最新的帖子(忽略5篇最新的帖子)。

SO网友:Stephen Harris

可以使用偏移参数-启用或pre_get_posts 挂钩(see this post) 对于“主回路”:

add_action(\'pre_get_posts\',\'wpse50761_alter_query\');
function wpse50761_alter_query($query){

      if( $query->is_main_query() ){
        //Do something to main query
        $query->set(\'offset\',5);
      }
}
或对于后续次级回路:

 //Using get_posts
 $my_offset_posts = get_posts(array(\'offset\'=>5));

 //Using WP_Query object
 $my_offset_query = new WP_Query( array(\'offset\'=> 5) );
(当然,其他参数也可以包含在参数数组中)

结束

相关推荐