这里有一种方法posts_per_page
中的值WP_Query
, 无论是粘性贴子还是自定义贴子注入:
$args = [
\'posts_per_page\' => 1,
\'_exact_posts_per_page\' => true // <-- our custom input argument
];
使用我们的自定义
_exact_posts_per_page
输入参数。
我相信这之前已经实现了很多次,但我现在还没有找到,所以让我们尝试用这个演示插件来实现它:
<?php
/**
* Plugin Name: Exact Posts Per Pages
* Description: Activated through the \'_exact_posts_per_page\' bool argument of WP_Query
* Plugin URI: http://wordpress.stackexchange.com/a/257523/26350
*/
add_filter( \'the_posts\', function( $posts, \\WP_Query $q )
{
if(
wp_validate_boolean( $q->get( \'_exact_posts_per_page\' ) )
&& ! empty( $posts )
&& is_int( $q->get( \'posts_per_page\' ) )
)
$posts = array_slice( $posts, 0, absint( $q->get( \'posts_per_page\' ) ) );
return $posts;
}, 999, 2 ); // <-- some late priority here!
这里我们使用
the_posts
过滤以切片阵列,无论它是否包含粘性帖子。
这个the_posts
如果suppress_filters
的输入参数WP_Query
是true
.
Note 那个query_posts()
不建议在插件或主题中使用。查看代码参考中的许多警告here.
希望您能进一步测试,并根据您的需要进行调整!