rest_validate_array_value_from_schema() WordPress Function
This function validates that the given array value conforms to the schema. Schemas are a way of describing the structure of data. They are useful for validation, documentation, and generating code. This function takes an array value and a schema, and returns whether the value conforms to the schema. The schema is an array with two keys: type and properties. The type key specifies the type of the value, and the properties key specifies the allowed properties of the value. The value must have the same type as specified in the schema, and it must have all of the specified properties. This function is useful for validating data before it is stored in a database or passed to an API. It can also be used to generate code from a schema.
rest_validate_array_value_from_schema( mixed $value, array $args, string $param ) #
Validates an array value based on a schema.
Parameters
- $value
(mixed)(Required)The value to validate.
- $args
(array)(Required)Schema array to use for validation.
- $param
(string)(Required)The parameter name, used in error messages.
Return
(true|WP_Error)
Source
File: wp-includes/rest-api.php
function rest_validate_array_value_from_schema( $value, $args, $param ) { if ( ! rest_is_array( $value ) ) { return new WP_Error( 'rest_invalid_type', /* translators: 1: Parameter, 2: Type name. */ sprintf( __( '%1$s is not of type %2$s.' ), $param, 'array' ), array( 'param' => $param ) ); } $value = rest_sanitize_array( $value ); if ( isset( $args['items'] ) ) { foreach ( $value as $index => $v ) { $is_valid = rest_validate_value_from_schema( $v, $args['items'], $param . '[' . $index . ']' ); if ( is_wp_error( $is_valid ) ) { return $is_valid; } } } if ( isset( $args['minItems'] ) && count( $value ) < $args['minItems'] ) { return new WP_Error( 'rest_too_few_items', sprintf( /* translators: 1: Parameter, 2: Number. */ _n( '%1$s must contain at least %2$s item.', '%1$s must contain at least %2$s items.', $args['minItems'] ), $param, number_format_i18n( $args['minItems'] ) ) ); } if ( isset( $args['maxItems'] ) && count( $value ) > $args['maxItems'] ) { return new WP_Error( 'rest_too_many_items', sprintf( /* translators: 1: Parameter, 2: Number. */ _n( '%1$s must contain at most %2$s item.', '%1$s must contain at most %2$s items.', $args['maxItems'] ), $param, number_format_i18n( $args['maxItems'] ) ) ); } if ( ! empty( $args['uniqueItems'] ) && ! rest_validate_array_contains_unique_items( $value ) ) { /* translators: %s: Parameter. */ return new WP_Error( 'rest_duplicate_items', sprintf( __( '%s has duplicate items.' ), $param ) ); } return true; }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
5.7.0 | Introduced. |