Loop for sticky posts

时间:2015-01-17 作者:Leader

我用过Justin Tadlock\'s 关于如何创建仅包含粘性帖子的循环的教程。

代码大致如下所示:

$sticky = get_option( \'sticky_posts\' );
rsort( $sticky );
$sticky = array_slice( $sticky, 0, 2 );
query_posts( array( \'post__in\' => $sticky, \'caller_get_posts\' => 1 ) );
根据教程,我只需要更改第三行的最后一个数字,以配置我希望在循环中显示的帖子数量。

但我认为上面的代码不会让我显示比存储在posts_per_page 背景(dashboard -> Settings -> Reading)

所以问题是:

如何进行上面的查询,使其能够显示比posts_per_page 选项有吗?

1 个回复
SO网友:Craig Pearson

问题是您正在使用该函数query_posts 这仅查询该页面上的默认结果。建议您使用wp_query 相反,它只是消除了错误或意外结果的裕度。

您可以创建如下所示的新查询,并明确指定要返回的帖子数量:

<?php

$sticky = get_option( \'sticky_posts\' );
rsort( $sticky );

$args = array(
    \'post__in\' => $sticky,
    \'posts_per_page\' => 10
    );

$sticky_query = new WP_Query( $args );

while ( $sticky_query->have_posts() ) : $sticky_query->the_post();
    // Do stuff with sticky posts
endwhile;

wp_reset_postdata();
此方法还允许您删除array_slice 过程因此,您可以简单地将posts\\u per\\u page更改为您选择的数量

结束