「WordPress」- 增加单页返回数据量 @20210401

问题描述

在 REST API 中,请求参数 per_page 用于指定单次 HTTP 请求返回的数据量。默认值 10,最大值 100。

我们希望可以调整最大值,比如设置最大值为 1000(因为我们清楚自身情况,所以数量调整到 1000,并不会导致服务器压力过大)。

那该如何调整这个最大值呢?

解决办法

在 Appearance => Theme Editor => function.php 中,将如下程序添加到文件最开始:

add_filter( "rest_post_collection_params", 'big_json_change_post_per_page', 10, 1 );
function big_json_change_post_per_page( $params ) {
    if ( isset( $params['per_page'] ) ) {
        $params['per_page']['maximum'] = 1000;
    }
    return $params;
}

点击 Update File 按钮以保存。

这样在调用 /wp-json/wp/v2/posts?per_page=1000 接口时,可以传入更大的 per_page 值。

附加说明

如上示例只能调整返回的文章数,如果想要调整返回的分类数,需要使用 rest_category_collection_params 参数才行。

从道理上说应该可以动态获取。在官方文档中,使用 rest_{$this->post_type}_collection_params 作参数。但是我们在 fucntion.php 中,是没有 $this 参数的。

由于精力时间有限,并且这也不是什么大问题,所以我们不再深入研究,如果日后遇到再行补充。

参考文献

Increase per_page limit in REST API
WP_REST_Posts_Controller::get_collection_params / rest_{$this->post_type}_collection_params
How to increase per_page limit to 200 ? #2914

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值