使用WordPress REST API创建带标签和分类的文章时遇到错误的求助
WordPress REST API创建带标签和分类的文章时遇到错误的求助
嗨,我来帮你搞定这个问题!首先明确告诉你:完全可以通过一次API请求就创建带标签和分类的文章,根本不用先创建文章再后续更新。你的问题出在请求数据的格式上,我给你详细梳理下:
为什么会报错?
你当前代码里的tags字段格式不对——WordPress REST API的文章创建接口(/wp/v2/posts)中,tags参数要求传入的是标签ID的数组,而不是包含name属性的对象数组。当你传[{"name":"hello"},{"name":"world"}]这种格式时,API根本识别不了,自然就会抛出错误。
两种可行的解决方案
方案一:用tax_input参数直接传标签/分类名称(推荐!支持自动创建新标签)
tax_input是REST API专门用来指定分类法术语的参数,你可以直接传入标签或分类的名称数组,API会自动帮你创建不存在的标签/分类,同时直接关联到新文章上。修改你的请求数据如下:
var data = JSON.stringify({ "title":"Example Post By Dev", "content":"This zzzz is an example post created using the REST API.", "status":"publish", "tax_input": { "post_tag": ["hello", "world"], // 标签名称数组,不存在会自动创建 "category": ["默认分类", "技术分享"] // 可选:分类名称数组,同样支持自动创建 } });
这样改完之后,一次请求就能完成文章创建+标签/分类关联的所有操作,省心又高效。
方案二:先获取标签ID,再传入tags字段
如果你已经知道标签的ID,或者需要先手动创建标签再关联,可以先调用/wp/v2/tags接口创建标签,拿到返回的ID后,再把ID数组传给tags字段:
- 先创建单个标签的示例请求:
var tagData = JSON.stringify({"name":"hello"}); var tagConfig = { method: 'post', url: 'http://00.000.000.00/wp-json/wp/v2/tags', headers: { 'Authorization': 'Basic xxxxxxx=', 'Content-Type': 'application/json' }, data : tagData }; axios(tagConfig).then(res => { console.log("新创建的标签ID:", res.data.id); });
- 然后在创建文章时传入标签ID数组:
var data = JSON.stringify({ "title":"Example Post By Dev", "content":"This zzzz is an example post created using the REST API.", "status":"publish", "tags": [123, 456] // 替换成你实际拿到的标签ID });
额外注意事项
- 确保你用来请求API的账号(也就是
Authorization里的账号)有足够权限:需要具备创建文章、管理标签和分类的权限,比如编辑者或管理员权限。 - 用
tax_input的时候别写错分类法的slug:标签的分类法slug是post_tag,文章分类的是category,写错的话API也会识别失败哦。
备注:内容来源于stack exchange,提问作者sortof
相关产品推荐
相关产品推荐

