WordPress 5.4 对REST API 的更改

作者 : 饭粒 本文共1178个字,预计阅读时间需要3分钟 发布时间: 2020-03-1 共261人阅读

Posts Controller 现在支持分类法“OR”关系

查询/wp/v2/posts?tags=1&categories=2 返回了分配了 ID 为 1 的标签,并且分配了 ID 为 2 的分类下的所有文章。自 wordpress 4.7 以来,Posts Controller 一直只支持这种 AND 关系(必须同时满足多个分类法的分类关系。

REST API /wp/v2/posts 端点以及从扩展过来的自定义文章类型端点 WP_REST_Posts_Controller(包括指定的自定义文章类型”show_in_rest” => true)现在支持一个新参数 tax_relation,该参数可用于返回与任一分类过滤器(而不是两者)匹配的文章,也就是“或者( OR )” 关系。

例如,在 WordPress 5.4 中,posts 端点查询:

/wp/v2/posts?tags=1&categories=2&tax_relation=OR

现在将返回标签 ID 为 1 或与分类 ID 为 2 的所有文章。

选择性链接嵌入

REST API 现在支持使用 _embed 参数返回有限的一组嵌入式对象。例如,在 WordPress 5.4 中,以下查询仅嵌入作者信息,而不包括所有评论,媒体等。

/wp/v2/posts/?_embed=author

如果 _embed 省略参数值或将其设置为 true 或 1 ,则将返回所有嵌入。

WP_REST_Server 方法更改

WordPress 5.4 更改了 WP_REST_Server 类中两个方法的签名。扩展 WP_REST_Server 和覆盖这些方法的开发人员应更新其代码以匹配新的签名,以避免出现 PHP 警告。

  1. WP_REST_Server::embed_links()的签名现在为embed_links( $data, $embed = true )。新参数$embed接受链接关系(例如array( 'author', 'wp:term' ))的数组,并在响应这些关系时限制嵌入的链接。默认设置为true将保留以前在响应中嵌入所有链接的行为。有关更多详细信息,请参见#39696
  2. WP_REST_Server::get_routes()的签名现在为get_routes( $namespace = '' )。新参数$namespace接受一个字符串,并将返回的路由限制为名称空间与该字符串匹配的路由。在内部,WP_REST_Server使用此新参数来提高性能,WP_REST_Server::dispatch()方法是减少将请求与注册路由相匹配所需的正则表达式检查次数。

出于性能原因,WP_REST_Server::embed_links()现在还将响应数据缓存在内存中。此缓存由 WP_REST_Server::response_to_data()管理。直接调用被保护 embed_links 方法的代码可能需要更新,以确保不返回旧的数据。

提示:
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!邮箱:(Admin@fanli28.cn)
2. 分享目的仅供大家学习和交流,请不要用于商业用途!QQ群:879035958(VIP群) 10563080(2群)
3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请点击右下方联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码请在"下载框架提示方寻找",如遇到无法解压的请联系管理员!
饭粒爱吧资源网 » WordPress 5.4 对REST API 的更改