rest_validate_enum

函数
rest_validate_enum ( $value, $args, $param )
参数
  • (mixed) $value The value to validate.
    Required:
  • (array) $args The schema array to use.
    Required:
  • (string) $param The parameter name, used in error messages.
    Required:
返回值
  • (true|WP_Error) True if the "enum" contains the value or a WP_Error instance otherwise.
定义位置
相关方法
rest_validate_request_argvalidate_emailrest_validate_value_from_schemawp_validate_booleanvalidate_file
引入
5.7.0
弃用
-

rest_validate_enum: 这是一个WordPress的函数,用来验证一个值是否是一个指定的值集的成员: 该函数接收一个值参数和一组允许的值,如果该值不是该组的成员,则返回一个错误信息。

验证给定值是JSON模式"enum"的成员。

function rest_validate_enum( $value, $args, $param ) {
	$sanitized_value = rest_sanitize_value_from_schema( $value, $args, $param );
	if ( is_wp_error( $sanitized_value ) ) {
		return $sanitized_value;
	}

	foreach ( $args['enum'] as $enum_value ) {
		if ( rest_are_values_equal( $sanitized_value, $enum_value ) ) {
			return true;
		}
	}

	$encoded_enum_values = array();
	foreach ( $args['enum'] as $enum_value ) {
		$encoded_enum_values[] = is_scalar( $enum_value ) ? $enum_value : wp_json_encode( $enum_value );
	}

	if ( count( $encoded_enum_values ) === 1 ) {
		/* translators: 1: Parameter, 2: Valid values. */
		return new WP_Error( 'rest_not_in_enum', wp_sprintf( __( '%1$s is not %2$s.' ), $param, $encoded_enum_values[0] ) );
	}

	/* translators: 1: Parameter, 2: List of valid values. */
	return new WP_Error( 'rest_not_in_enum', wp_sprintf( __( '%1$s is not one of %2$l.' ), $param, $encoded_enum_values ) );
}

常见问题

FAQs
查看更多 >