Here is what I have learned about the WP REST API: It is a mess of undocumented and unfinished code with great promise but frustratingly little clarity.
这就是说,我有一个变通方法,我将在这里发布,希望它对处于类似困境的其他人有用:
我刚刚发现,如果我有一个元字段的id,并且如果我使用posts
在我的路径中(即使对于CPT)。因此,例如(假设我的post id是1622,meta id是11395),此查询将起作用:
POST https://example.com/wp-json/wp/v2/posts/1622/meta/11395?value=mykeyvalue
但这些不会(以各种方式):
POST https://example.com/wp-json/wp/v2/posts/1622/meta?key=mykeyname&value=mykeyvalue (will ADD new but not edit existing)
POST https://example.com/wp-json/wp/v2/posts/1622/?key=mykeyname&value=mykeyvalue (404)
POST https://example.com/wp-json/wp/v2/my-cpt/1622/meta?key=mykeyname&value=mykeyvalue (404)
POST https://example.com/wp-json/wp/v2/my-cpt/1622/meta/11395?value=mykeyvalue (404)
我还发现,通过执行如下查询,我可以获得所有元:
GET https://example.com/wp-json/wp/v2/posts/1622/meta/
因此,我想把所有这些放在一起,我可以通过以下方式在当前的形式下完成这项工作:
GET https://example.com/wp-json/wp/v2/posts/1622/meta/
过滤上述结果以获取我要更改的元idPOST https://example.com/wp-json/wp/v2/posts/1622/meta/11395?value=mykeyvalue
如果有人有什么要补充的,或者对其他可能的方向有什么想法,我洗耳恭听。否则,我想这就是我的“解决方案”。请注意,即使要让它发挥作用,也必须具备以下先决条件:
- This plugin 配置为公开帖子类型和元This plugin 启用元端点上面我没有提到身份验证,因为它超出了本讨论的范围,但根据您的设置,您可能需要在使用API之前进行身份验证,就像我的设置一样(使用Oauth和通常会添加到这些URL的令牌)