Wordpress REST API _fields 和 _embed 参数不能同时工作

Kia*_*ani 6 rest wordpress json

如果您使用 _embed 参数调用 REST API,您将能够获取嵌入对象作为返回 JSON 的“_embedded”JSON 对象,如下所示:

/?rest_route=/wp/v2/posts&_embed
Run Code Online (Sandbox Code Playgroud)

如果您使用 _fields 参数,您可以过滤掉 API 返回的对象,例如:

/?rest_route=/wp/v2/posts&_fields=id,content,title
Run Code Online (Sandbox Code Playgroud)

问题是,当同时使用 are_embed 和 _filter 时,无论我应用什么过滤器组合,返回的结果都不包含“_embedded”JSON 对象。例如:

/?rest_route=/wp/v2/posts&_embed&_fields=id,content,title,_embedded
Run Code Online (Sandbox Code Playgroud)

不返回“_embedded”JSON 对象

Worpress 版本是 5.3.2(最新)

并且没有启用漂亮的永久链接,因此必须使用“/?rest_route=”

Rez*_*baf 11

正如前面所回答的,似乎 _link 对于弄清楚如何获取 _embed 属性是必要的。但如果您像我一样并且希望真正最大程度地减少返回的 JSON 量,则可以执行以下操作。

假设您想要wp:featuredmedia的属性_embedded。然后你可以请求

选项1

/wp/v2/页面?_embed=wp:featuredmedia &_fields= _links.wp:featuredmedia,_embedded

_嵌入=>wp:featuredmedia

_fields => _embeddedand _links.wp:featuredmedia(这样嵌入才真正起作用)

选项 2:稍作改动也可以

/wp/v2/页面?_embed &_fields= _links.wp:featuredmedia,_embedded.wp:featuredmedia

_embed => 告诉我们进行嵌入

_fields => _links.wp:featuredmedia,_embedded.wp:featuredmedia(确保我们只返回那些)


小智 7

您需要添加_links以获取 JSON 对象:

/wp-json/wp/v2/posts?_fields=id,content,title,_links,_embedded&_embed