本文档详细说明了自 4.7.0 版本公开发布以来 WP REST API 的变更。
5.6 版本
- 引入用于 API 身份验证的应用程序密码。 r49109
- 引入批量请求。 r49252
- 支持路由级别的验证回调。 r48945
- 将 Site Health 异步测试移至 REST API。 r49154
- 添加一个钩子,在帖子、其术语和元数据更新后触发一次。 r49172
- 引入搜索词处理器。 r49103
- 引入搜索帖子格式处理器。 r49132
- 允许在搜索控制器中使用字符串 ID。 r49088
- 支持更广泛的 JSON 媒体类型。 r49329
- 支持
multipleOfJSON Schema 关键字。 r49063 - 支持
minProperties和maxPropertiesJSON Schema 关键字。 r49053 - 支持
patternPropertiesJSON Schema 关键字。 r49082 - 支持
anyOf和oneOfJSON Schema 关键字。 r49246 - 确保所有支持的 JSON Schema 关键字都输出在索引中。 r49257
- 在
wp.apiRequest中添加 HTTP/1.1 模拟。 r49133 - 在
wp.apiRequest中包含 JSONAccept头。 r49716 - 如果帖子状态未更改,则不验证它。 r49302
- 支持为自定义帖子控制器生成评论上链。 r49299
5.5 版本
- 引入区块类型端点。 r48173
- 引入插件和区块目录端点。 r48242
- 引入图像编辑器端点。 r48291
- 向主题端点添加更多字段。 r47921
- 为在主题端点中使用而引入
register_theme_feature()API。 r48171 - 允许向区块渲染器端点发送 POST 请求。 r47756
- 仅注册一个由所有区块类型共享的单个区块渲染器端点。 r48069
- 向 oEmbed 端点添加对经典嵌入的支持。 r48135
- 链接到当前查询资源的 REST 路由。 r48273
- 引入对默认元数据值的支持。 r48402
- 将
Link头添加到暴露的 CORS 头列表中。 48112 - 将
Content-Disposition、Content-MD5和X-WP-Nonce添加为允许的 CORS 头。 r48452 - 改进多类型 JSON Schema 支持。 r48306
- 仅当
type为string时才验证format关键字。 r48300 - 支持
uuidJSON Schema 格式。 47753 - 支持
hex-colorJSON Schema 格式。 r47450 - 支持
patternJSON Schema 关键字。 r47810 - 支持
minItems、maxItems和uniqueItemsJSON Schema 关键字。 r47923 r48357 - 支持
minLength和maxLengthJSON Schema 关键字。 r47627 - 在验证对象时检查是否提供了必需属性。 r47809
- 在按上下文过滤响应时支持更多 JSON Schemas。 r47758
- 在
WP_REST_Request::set_param()内一致地处理参数类型。 r47559 - 弃用
HTTP_RAW_POST_DATA全局变量的回填。 r47926 - 在注册缺少
permission_callback的路由时发出_doing_it_wrong。 r48526 - 在 REST API 请求期间使用
wp_send_json()系列函数时发出_doing_it_wrong。 r48361 - 确保
rest_ensure_response()将WP_HTTP_Response升级为WP_REST_Response。 r47849 - 仅在 REST API 请求期间强制主查询为
is_home()。 r48053 - 确保 JSON Schema 验证器支持的所有关键字都由
WP_REST_Controller::get_endpoint_args_for_item_schema()许可。 r47911 - 确保在预加载 REST API 数据时触发弃用通知。 r48150
- 有关更多评论,请参阅 WordPress 5.5 中的 REST API 变更。
5.4 版本
- 引入选择性链接嵌入。 r47224
- 修复评论控制器中的 PHP 警告,如果被评论的帖子类型不存在。 [r47036](https://core.trac.wordpress.org/changeset/47036]
- 在注册没有 items schema 的 "array" 设置时添加
_doing_it_wrong警告。 r47325 - 正确推断通过查询参数传递的空对象。 r47362
- 向帖子集合添加 "tax_relation" 参数。 r46646
- 允许通过 REST 创建新的媒体记录时设置元数据。 r47261
- 如果用户可以编辑任何帖子类型,则允许访问主题控制器。 r47361.
- 添加对
REDIRECT_HTTP_AUTHORIZATION头的支持。 r47239 - 添加对过滤帖子控制器 schema 的支持。 r47265
- 如果分类法的指定
rest_base已被其他资源使用,则添加_doing_it_wrong警告。 r47037 - 通过在执行正则表达式检查之前先匹配 REST API 路由的命名空间来提高路由性能。 r47260
- 不要假设所有项 schema 都有属性。 r47328
- 在构建集合响应时重用先前生成的嵌入对象以提高性能。 r47138
- 在
/themes端点响应中列出所有核心主题功能支持详情。 r47258 - 修复非可变路由的
OPTIONS请求中的链接格式。 r47326 - 在渲染区块预览时应用所有相关的区块渲染过滤器。 r47360
5.3 版本
- 为提升性能,在控制器实例上缓存
get_item_schema的结果。r45811 - 允许在搜索端点中嵌入
self链接关系。r46434 - 将帖子日期属性传递为
null,以将帖子重置为初始的“浮动”日期值。r46249 - 防止删除帖子修订版本。r45812
- 如果状态码为
204或响应体为null,则不发送响应体。r45809 - 在
register_meta()架构中支持object和array类型。r45807 - 在
_fields查询参数中支持点分嵌套层级属性。r46184 - 在
PUT或POST请求后,于edit上下文中返回术语资源。r46098 - 在状态端点响应对象中引入
date_floating属性。r46252
Version 5.2
- 修复将父级术语设置为 0 时出现的未定义属性通知。r44965
- 移除未使用的
validate_user_can_query_private_statuses()附件控制器方法。r44934 - 确保 OPTIONS 请求返回 "Allow" 头。r44933
- 始终通过
urlencode_deep()传递get_items()方法中的查询参数,以确保其正确编码。r45267
Version 5.1
- 引入
rest_post_search_query过滤器,以便对帖子搜索查询的操作参数进行操纵。r44482 - 允许更改用户电子邮件地址的大小写。r44641
- 如果在
rest_api_init钩子之前调用register_rest_route(),则触发_doing_it_wrong()警告。r44568
Version 5.0
- New Routes & Endpoints
- 引入实现新
WP_REST_Search_Controller的wp/v2/search路由。搜索类型通过扩展WP_REST_Search_Handler来处理,并且可以使用wp_rest_search_handlers过滤器过滤当前激活的搜索类型。#39965 - 引入
wp/v2/blocks路由以检索单个可重用区块。需要身份验证。#45098 - 为除
attachment之外的所有帖子类型引入自动保存端点。自动保存端点利用新的WP_REST_Autosaves_Controller类,仅保存帖子的id、title、post_content和excerpt。即使是不支持修订版本的帖子类型,也会启用自动保存功能。需要身份验证。#43316 - 引入
wp/v2/block-renderer/<name>路由,用于返回服务器渲染区块的动态生成标记。URL 中的name组件结构为namespace/block-id,e.g.core/archives。需要身份验证。#45098 - 引入
wp/v2/themes端点,向区块编辑器暴露受支持的主题功能。此端点仅返回活动主题的数据。需要身份验证。#45016 - 引入
wp/v2/types/wp_block端点,以暴露与新的隐藏帖子类型wp_block相关的区块标签和功能。#45098
- 引入实现新
- Additional Changes
- 自定义分类法必须指定
show_in_rest为true才能在区块编辑器中可见。 - 引入
wp_is_json_request()函数以确定请求是否期望 JSON 响应,如果是,则在此上下文中静默 PHP 警告。r43730 - 针对公开且可查看的帖子类型并指定了
edit上下文的请求,现在将返回两个额外属性:permalink_temlate和generated_slug。r43720 - 在使用
register_rest_field应用自定义帖子属性时,尊重?_fields=过滤器。r43736 - 允许具有
read_private_posts权限的用户查询私有帖子。r43694 - 使用 JSON Hyper Schema
targetSchema声明unfiltered_html权限。r43682 - 在帖子对象中引入
block_version属性,以表示帖子内是否存在区块及其版本。r43770 - 添加新的
rest_after_*操作钩子,在所有写入操作完成后触发。r42864
- 自定义分类法必须指定
- 有关更多评论,请参阅 The REST API in WordPress 5.0。
Version 4.9.8
- 引入
?_fields=全局查询参数,以限制响应对象中包含的属性为指定的子集。#38131 - 为
register_meta()的$args参数添加object_subtype参数:此参数允许开发人员指定注册元数据将在哪些对象子类型(i.e. 特定的帖子类型或分类法)中出现,前提是show_in_rest为 true。引入新的包装方法register_post_meta()和register_term_meta(),建议在处理帖子或术语元数据时使用它们代替register_meta。r43378
Version 4.8.1
- 添加过滤器,允许在添加嵌入数据后修改响应。r41093
wp-api.js客户端:正确将settings资源解释为模型而非集合。r41126- 通过调整 REST API URL 来修复 nginx 服务器的
PUT(及其他)请求。r41140
Version 4.8.0
- 改进 4.7.0 字符串冻结后添加的字符串。r40571, r40606
- 在
WP_REST_Request::remove_header()中对头名称进行规范化。r40577 - 允许来自
file:URL 的Origin: null。r40600 - 在准备修订版本时设置全局
$post变量。r40601 - 在嵌入响应中包含
featured_media。r40602 - 为帖子添加
author、modified和parent排序选项。r40605 - 添加用于代理请求到外部 oEmbed 提供者的端点,并在媒体模态框中使用它,而不是
parse-embedAJAX 操作。这是 WP REST API 在wp-admin中的首次使用。 r40628 - 不要频繁设置
X-WP-Deprecated*头。r40782 - 避免在向已认证请求发送空白的
Last-Modified头。r40805 - 修复某些请求中使用
$request->set_param()更改参数的问题。r40815 - 在管理区域,确有必要时将 REST API 端点 URL 强制设为
https。r40843
Version 4.7.4
- 修复另一个与日期(DST 相关)的帖子问题。r40325
- 在基础
/wp-json响应中添加gmt_offset和timezone_string。r40336 - 在
WP_REST_Posts_Controller::check_read_permission()中确认附件的父帖子对象存在。r40337 - 允许通过相应端点的
slug参数一次获取多个用户和术语。r40426, r40427
Version 4.7.3
- 将修订版作者 ID 转换为 int。r40078
- 正确提供带有
PATH_INFO的索引。r40079 - 在 Posts 端点的
view上下文响应中包含status属性。r40081 wp-api.js客户端:合并对象时使用_.extend代替_.union。r40084- 为 4.8 版本中的完整多站点实施做准备in 4.8,不允许访问来自不同站点的用户。r40111
- 正确解析
DELETE请求的主体参数。r40113 - 修复帖子和评论日期的多个问题。r40114, r40115
wp-api.js客户端:修复自定义命名空间的路由发现。r40117- 修复当没有置顶帖子时
sticky帖子过滤器的行为。r40136 - 允许设置所有文章格式,即使主题不支持它们。r40137
Version 4.7.2
- 统一对象访问处理以简化操作。r39957
Version 4.7.1
- 在
'rest_allow_anonymous_comments'中将任何假值视为false。r39566 wp-api.js客户端:修复wp.api.collections对象所使用的模型设置。r39604- 空 JSON 主体不报错。r39609
- 不在
GET /wp/v2/media端点中包含password参数。r39610 - 允许发送空或无操作的评论更新。r39628
- 在
GET /wp/v2/media端点中添加对文件名搜索的支持。r39629 - 修复当
get_theme_support( 'post-formats' )不是数组时的 PHP 警告。r39630 - 改进
rest_*_collection_params过滤器文档并修复术语过滤器。r39631 - 允许将架构
sanitization_callback设置为null以绕过内置清理。r39642 - 更改用户在用户端点中显示的内容。r39844