【问题标题】:Wordpress REST API _fields and _embed parameters are not working simultaneouslyWordpress REST API _fields 和 _embed 参数不能同时工作
【发布时间】:2020-03-13 08:09:01
【问题描述】:

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

/?rest_route=/wp/v2/posts&_embed

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

/?rest_route=/wp/v2/posts&_fields=id,content,title

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

/?rest_route=/wp/v2/posts&_embed&_fields=id,content,title,_embedded

不返回“_embedded”JSON 对象

Worpress 版本为 5.3.2(最新)

而且漂亮的永久链接没有启用,所以“/?rest_route=”的使用是强制性的

【问题讨论】:

  • 这仍然发生在 wp 5.5.1 :(

标签: json wordpress rest


【解决方案1】:

需要添加_links才能获取JSON对象:

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

【讨论】:

    【解决方案2】:

    如前所述,似乎需要 _link 来弄清楚如何获取 _embed 属性。但是,如果您像我一样想要真正减少返回的 JSON 数量,您可以执行以下操作。

    假设您想要_embeddedwp:featuredmedia 属性。然后你可以要求

    选项 1

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

    _embed => wp:featuredmedia

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

    选项 2:也可以使用的细微变化

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

    _embed => 告诉我们进行嵌入

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

    【讨论】:

    • 干草,我想访问 wp:featuredmedia 中唯一的单个字段。有没有办法只查询那个特定的字段? IE。字段=_embedded.wp:featuredmedia[0].id。当我尝试这个时,它正在发送完整的 wp:featuredmedia。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    相关资源
    最近更新 更多