rest_validate_array_value_from_schema( mixed $value, array $args, string $param ): true|WP_Error

In this article

Validates an array value based on a schema.

Parameters

$valuemixedrequired
The value to validate.
$argsarrayrequired
Schema array to use for validation.
$paramstringrequired
The parameter name, used in error messages.

Return

true|WP_Error

Source

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; } 

Changelog

VersionDescription
5.7.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.