我用过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
选项有吗?
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更改为您选择的数量