通过WordPress REST API按自定义标签筛选自定义文章类型失败求助
解决WordPress REST API按自定义分类法筛选失效的问题
问题原因
你使用的filter[taxonomy]和filter[term]是旧版REST API的参数格式,目前已被弃用;另外如果自定义分类法未开启REST支持,也无法通过API完成筛选。
修复步骤
1. 确保自定义分类法“ano”开启REST支持
检查注册“ano”分类法的代码,必须添加show_in_rest => true配置,示例代码如下:
register_taxonomy( 'ano', 'material', [ 'label' => '年份', 'hierarchical' => false, // 标签类分类法设为非层级 'show_in_rest' => true, // 关键配置:允许该分类法通过REST API访问 'rest_base' => 'ano', // 可选,设置REST接口的基础路径,默认使用分类法slug 'query_var' => 'ano', // 其他相关配置参数 ] );
如果之前未添加该配置,更新代码后需要进入后台→设置→固定链接,直接保存刷新规则即可。
2. 使用正确的API筛选参数
直接用分类法的slug作为参数名,替换旧的filter参数:
- 按术语slug筛选(比如你需要的1994):
$url = 'https://cat.site.com/wp-json/wp/v2/material?ano=1994'; - 如果要按术语ID筛选,把1994替换为对应术语的ID即可:
$url = 'https://cat.site.com/wp-json/wp/v2/material?ano=xxx'; // xxx为目标术语的ID
3. 验证修改后的代码
更新PHP代码中的URL后重新执行,就能得到仅包含“ano=1994”标签的material类型文章。
内容的提问来源于stack exchange,提问作者abcd
相关产品推荐
相关产品推荐

