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

WordPress自定义层级分类法:REST API单次获取全层级术语?

解决WordPress层级分类法REST API单次获取所有术语的问题

直接通过API参数实现(无需代码)

如果你的自定义分类术语总数不超过100个,直接在API请求中添加per_page=100参数即可一次性获取所有层级的术语:

[domain]/wp-json/wp/v2/vl_bok_primary_cat?per_page=100

WordPress REST API默认仅返回10条结果,per_page的上限默认是100,设置为100即可覆盖绝大多数场景。

术语超过100时的调整

如果你的术语数量超过100,需要添加代码调整REST API的返回上限。将以下代码添加到主题的functions.php文件或自定义插件中:

add_filter( 'rest_term_collection_params', 'adjust_vl_cat_rest_per_page', 10, 2 );
function adjust_vl_cat_rest_per_page( $params, $taxonomy ) {
    // 仅针对你的自定义分类法调整
    if ( $taxonomy === 'vl_bok_primary_cat' ) {
        $params['per_page']['maximum'] = 500; // 按需设置最大返回数量
    }
    return $params;
}

之后就可以用per_page=500(或你设置的数值)来获取所有术语。

修正默认API请求的返回逻辑

如果默认调用[domain]/wp-json/wp/v2/vl_bok_primary_cat仅返回二级术语,可能是分类法的REST查询被默认限制了父级参数。添加以下代码可以让默认请求自动返回所有层级的术语:

add_filter( 'rest_vl_bok_primary_cat_query', 'remove_default_parent_restriction', 10, 2 );
function remove_default_parent_restriction( $args, $request ) {
    // 未指定parent参数时,取消父级限制
    if ( ! isset( $request['parent'] ) ) {
        unset( $args['parent'] );
    }
    return $args;
}

添加后,直接调用默认的API端点就能获取所有层级的术语,无需额外参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 00:54:11