我正在pre_get_posts
调整首页上显示的帖子数。
function lifelounge_query_adjust( $query ) {
if ( is_home() ) {
set_query_var( 'posts_per_page', 12 );
return;
}
}
add_filter( 'pre_get_posts', 'lifelounge_query_adjust' );
但是我遇到了粘性帖子的问题。基本上,如果我有任何置顶文章,查询会显示更多比我所指定的12个职位,因为它会显示12篇加任何置顶文章。我当然可以忽略粘性帖子:
function lifelounge_query_adjust( $query ) {
if ( is_home() ) {
set_query_var( 'posts_per_page', 1 );
set_query_var( 'ignore_sticky_posts', 1 );
return;
}
}
add_filter( 'pre_get_posts', 'lifelounge_query_adjust' );
但是我不认为这是理想的。我认为粘性帖子应包含在12个帖子的限制中,而不应添加到该限制中。那对我来说最有意义。有办法实现吗?我是否犯了一个值得脸彩的错误?
几乎重复:粘性帖子和每页的帖子,但是由于本地化太过奇怪而被关闭。我不同意,显然是因为我在寻找答案,也因为这是一个问题,为什么如果您使用粘性帖子,WordPress似乎不尊重该posts_per_page
限制。如果您希望每页12个帖子,那么您应该得到12个帖子,而不是13个帖子,如果只有一个粘性帖子,您将获得12个帖子。
$sticky_count + (12 - $sticky_count)
为12- $sticky_count
。例如,如果我的粘性为1,则您的数学仍然为12,然后WP将粘性帖子添加为13if ($sticky_count > $posts_per_page)
。