rest_handle_multi_type_schema()
Handles getting the best type for a multi-type schema.
This is a wrapper for rest_get_best_type_for_value() that handles backward compatibility for schemas that use invalid types.
No Hooks.
Returns
String.
Usage
rest_handle_multi_type_schema( $value, $args, $param );
- $value(mixed) (required)
- The value to check.
- $args(array) (required)
- The schema array to use.
- $param(string)
- The parameter name, used in error messages.
Default:''
Changelog
| Since 5.5.0 | Introduced. |
rest_handle_multi_type_schema() rest handle multi type schema code WP 7.0
function rest_handle_multi_type_schema( $value, $args, $param = '' ) {
$allowed_types = array( 'array', 'object', 'string', 'number', 'integer', 'boolean', 'null' );
$invalid_types = array_diff( $args['type'], $allowed_types );
if ( $invalid_types ) {
_doing_it_wrong(
__FUNCTION__,
/* translators: 1: Parameter, 2: List of allowed types. */
wp_sprintf( __( 'The "type" schema keyword for %1$s can only contain the built-in types: %2$l.' ), $param, $allowed_types ),
'5.5.0'
);
}
$best_type = rest_get_best_type_for_value( $value, $args['type'] );
if ( ! $best_type ) {
if ( ! $invalid_types ) {
return '';
}
// Backward compatibility for previous behavior which allowed the value if there was an invalid type used.
$best_type = reset( $invalid_types );
}
return $best_type;
}