rest_get_endpoint_args_for_schema() WordPress Function
The rest_get_endpoint_args_for_schema() function is used to retrieve the default values for the `$args` parameter of the `register_rest_endpoint()` function. This function is used to create custom endpoints for the WordPress REST API.
rest_get_endpoint_args_for_schema( array $schema, string $method = WP_REST_Server::CREATABLE ) #
Retrieves an array of endpoint arguments from the item schema and endpoint method.
Parameters
- $schema
(array)(Required)The full JSON schema for the endpoint.
- $method
(string)(Optional) HTTP method of the endpoint. The arguments for
CREATABLE
endpoints are checked for required values and may fall-back to a given default, this is not done onEDITABLE
endpoints.Default value: WP_REST_Server::CREATABLE
Return
(array) The endpoint arguments.
Source
File: wp-includes/rest-api.php
function rest_get_endpoint_args_for_schema( $schema, $method = WP_REST_Server::CREATABLE ) { $schema_properties = ! empty( $schema['properties'] ) ? $schema['properties'] : array(); $endpoint_args = array(); $valid_schema_properties = rest_get_allowed_schema_keywords(); $valid_schema_properties = array_diff( $valid_schema_properties, array( 'default', 'required' ) ); foreach ( $schema_properties as $field_id => $params ) { // Arguments specified as `readonly` are not allowed to be set. if ( ! empty( $params['readonly'] ) ) { continue; } $endpoint_args[ $field_id ] = array( 'validate_callback' => 'rest_validate_request_arg', 'sanitize_callback' => 'rest_sanitize_request_arg', ); if ( WP_REST_Server::CREATABLE === $method && isset( $params['default'] ) ) { $endpoint_args[ $field_id ]['default'] = $params['default']; } if ( WP_REST_Server::CREATABLE === $method && ! empty( $params['required'] ) ) { $endpoint_args[ $field_id ]['required'] = true; } foreach ( $valid_schema_properties as $schema_prop ) { if ( isset( $params[ $schema_prop ] ) ) { $endpoint_args[ $field_id ][ $schema_prop ] = $params[ $schema_prop ]; } } // Merge in any options provided by the schema property. if ( isset( $params['arg_options'] ) ) { // Only use required / default from arg_options on CREATABLE endpoints. if ( WP_REST_Server::CREATABLE !== $method ) { $params['arg_options'] = array_diff_key( $params['arg_options'], array( 'required' => '', 'default' => '', ) ); } $endpoint_args[ $field_id ] = array_merge( $endpoint_args[ $field_id ], $params['arg_options'] ); } } return $endpoint_args; }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
5.6.0 | Introduced. |