函数文档

rest_validate_request_arg()

💡 云策文档标注

概述

rest_validate_request_arg() 是一个 WordPress REST API 函数,用于根据路由注册的参数详情验证请求参数。它通过调用 rest_validate_value_from_schema() 实现基于 JSON Schema 的验证。

关键要点

  • 函数签名:rest_validate_request_arg( $value, $request, $param ),其中 $value 为待验证值,$request 为 WP_REST_Request 对象,$param 为参数名。
  • 返回类型:验证成功返回 true,失败返回 WP_Error 对象。
  • 内部逻辑:从 $request 属性中获取参数定义,若未定义或非数组则直接返回 true;否则调用 rest_validate_value_from_schema() 进行验证。
  • 相关函数:rest_validate_value_from_schema() 用于基于 schema 验证值,rest_parse_request_arg() 用于解析请求参数。
  • 引入版本:WordPress 4.7.0。

代码示例

function rest_validate_request_arg( $value, $request, $param ) {
    $attributes = $request->get_attributes();
    if ( ! isset( $attributes['args'][ $param ] ) || ! is_array( $attributes['args'][ $param ] ) ) {
        return true;
    }
    $args = $attributes['args'][ $param ];

    return rest_validate_value_from_schema( $value, $args, $param );
}

📄 原文内容

Validate a request argument based on details registered to the route.

Parameters

$valuemixedrequired
$requestWP_REST_Requestrequired
$paramstringrequired

Return

true|WP_Error

Source

function rest_validate_request_arg( $value, $request, $param ) {
	$attributes = $request->get_attributes();
	if ( ! isset( $attributes['args'][ $param ] ) || ! is_array( $attributes['args'][ $param ] ) ) {
		return true;
	}
	$args = $attributes['args'][ $param ];

	return rest_validate_value_from_schema( $value, $args, $param );
}

Changelog

Version Description
4.7.0 Introduced.