You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JWT Authentication for WP-API调用Woocommerce REST API仅返回12条结果怎么办

解决步骤

1. 核对生成JWT的账号权限

你用于生成JWT Token的WordPress账号必须匹配Woocommerce的商品读取权限:

  • 此前OAuth 1.0认证时你大概率使用了管理员/店铺管理员的密钥,切换JWT时如果使用了订阅者等低权限账号,默认只能拉取已发布的公开商品,私有商品、草稿商品都会被过滤,最终返回的总数量就会远低于实际商品数
  • 进入WP后台用户管理页,将对应账号的角色调整为店铺管理员或管理员,重新生成JWT Token后再发起请求测试

2. 排查JWT插件的限制规则

JWT Authentication for WP-API插件部分版本会默认对REST请求做资源限制:

  • 进入WP后台设置 > JWT Authentication页面,检查是否开启了REST API资源数量限制类开关,如有直接关闭
  • 检查站点根目录的.htaccess文件,确认JWT插件自动添加的规则没有额外限制参数,正常的规则仅需包含以下内容,多余的和per_page/limit相关的规则直接删除:
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

3. 强制放开Woocommerce接口返回限制

如果上述操作无效,可以在当前使用主题的functions.php文件中添加以下代码,覆盖所有插件对商品接口的过滤规则,放开返回数量限制:

// 调整商品接口per_page参数上限
add_filter( 'woocommerce_rest_product_collection_params', function( $params ) {
    if ( isset( $params['per_page'] ) ) {
        $params['per_page']['maximum'] = 500; // 可根据你的实际商品总量调整最大值
    }
    return $params;
}, 999 );

// 重置商品查询逻辑,避免其他插件过滤结果
add_filter( 'rest_post_dispatch', function( $result, $server, $request ) {
    if ( $request->get_route() === '/wc/v3/products' ) {
        $req_params = $request->get_params();
        $query_args = [
            'post_type' => 'product',
            'posts_per_page' => isset( $req_params['per_page'] ) ? intval( $req_params['per_page'] ) : 100,
            'post_status' => ['publish', 'draft', 'private'] // 可根据你需要拉取的商品状态调整
        ];
        remove_all_filters( 'pre_get_posts' );
        $product_query = new WP_Query( $query_args );
        $result->header( 'X-WP-Total', $product_query->found_posts );
    }
    return $result;
}, 999, 3 );

4. 验证请求有效性

你可以用Postman等工具携带相同的Bearer Token直接请求/wp-json/wc/v3/products?per_page=100,如果Postman返回的X-WP-Total数值正常,说明是React Native侧请求库自动截断了参数或者参数编码错误,自行检查前端请求逻辑即可。


内容的提问来源于stack exchange,提问作者Eric Lehmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:39:01