我想做的是收回所有自定义帖子类型的帖子。我知道,使用WordPress REST API,您可以将per\\u page=100添加到REST API的末尾,以收回100篇文章,但我需要一种从自定义文章类型中收回所有文章的方法。
在做了一些研究之后,我发现了以下功能:
function rest_posts_per_page( $args, $request ) {
$max = max( (int)$request->get_param( \'per_page\' ), 1000 );
$args[\'posts_per_page\'] = $max;
return $args;
}
add_filter( \'rest_post_query\', \'rest_posts_per_page\', 10, 2 );
默认情况下,它将从REST API回调的帖子数量切换为1000。
这对默认帖子很有用,但我也需要它来处理自定义帖子类型,因为上面的函数似乎只适用于默认帖子。因此,我想弄清楚的是,上述函数如何使用自定义帖子类型而不是默认帖子。
最合适的回答,由SO网友:birgire 整理而成
过滤器为dynamic
, i、 e.产生于rest_{$post_type}_query
.
所以对于post
post类型是rest_post_query
对于cpt
post类型是rest_cpt_query
请注意,REST分页可用:
https://example.com/wp-json/wp/v2/posts?per_page=100&page=1
https://example.com/wp-json/wp/v2/posts?per_page=100&page=2
...
最大值为
per_page
是为了减少在获取太多项目时超出可用资源时发生致命错误的风险。