rest_sanitize_request_arg()
云策文档标注
概述
rest_sanitize_request_arg() 是 WordPress REST API 中的一个函数,用于根据路由注册的参数详情对请求参数进行清理。它通过调用 rest_sanitize_value_from_schema() 实现基于 JSON Schema 的验证和清理。
关键要点
- 函数签名:rest_sanitize_request_arg( $value, $request, $param ),接受参数值、WP_REST_Request 对象和参数名。
- 工作原理:从请求属性中获取参数定义,如果未定义或不是数组则直接返回原值,否则使用 rest_sanitize_value_from_schema() 进行清理。
- 依赖关系:与 rest_sanitize_value_from_schema() 和 rest_parse_request_arg() 相关,常用于 REST API 端点参数处理。
- 版本历史:自 WordPress 4.7.0 版本引入。
代码示例
function rest_sanitize_request_arg( $value, $request, $param ) {
$attributes = $request->get_attributes();
if ( ! isset( $attributes['args'][ $param ] ) || ! is_array( $attributes['args'][ $param ] ) ) {
return $value;
}
$args = $attributes['args'][ $param ];
return rest_sanitize_value_from_schema( $value, $args, $param );
}
原文内容
Sanitize a request argument based on details registered to the route.
Parameters
$valuemixedrequired$requestWP_REST_Requestrequired$paramstringrequired
Source
function rest_sanitize_request_arg( $value, $request, $param ) {
$attributes = $request->get_attributes();
if ( ! isset( $attributes['args'][ $param ] ) || ! is_array( $attributes['args'][ $param ] ) ) {
return $value;
}
$args = $attributes['args'][ $param ];
return rest_sanitize_value_from_schema( $value, $args, $param );
}
Changelog
| Version | Description |
|---|---|
| 4.7.0 | Introduced. |