The rest_default_additional_properties_to_false() WordPress PHP function sets the “additionalProperties” to false by default for all object definitions in the schema.
Usage
rest_default_additional_properties_to_false( $schema );
Parameters
$schema
(array) – Required. The schema to modify.
More information
See WordPress Developer Resources: rest_default_additional_properties_to_false()
Examples
Modifying a REST API schema
Set “additionalProperties” to false for all object definitions in the schema.
// Define the schema $schema = array( 'type' => 'object', 'properties' => array( 'title' => array( 'type' => 'string', ), 'content' => array( 'type' => 'string', ), ), ); // Apply the rest_default_additional_properties_to_false() function $modified_schema = rest_default_additional_properties_to_false( $schema );
Customizing a custom post type REST API schema
Customize the schema for a custom post type and set “additionalProperties” to false for all object definitions.
add_filter( 'rest_prepare_my_custom_post_type', 'my_custom_post_type_rest_prepare', 10, 3 ); function my_custom_post_type_rest_prepare( $response, $post, $request ) { $schema = $response->get_schema(); $modified_schema = rest_default_additional_properties_to_false( $schema ); $response->set_schema( $modified_schema ); return $response; }
Adding a custom field to a custom post type schema
Add a custom field to a custom post type schema and set “additionalProperties” to false for all object definitions.
add_filter( 'rest_prepare_my_custom_post_type', 'my_custom_post_type_add_custom_field', 10, 3 ); function my_custom_post_type_add_custom_field( $response, $post, $request ) { $schema = $response->get_schema(); $schema['properties']['my_custom_field'] = array( 'type' => 'string', ); $modified_schema = rest_default_additional_properties_to_false( $schema ); $response->set_schema( $modified_schema ); return $response; }
Customizing the schema for a taxonomy
Customize the schema for a taxonomy and set “additionalProperties” to false for all object definitions.
add_filter( 'rest_prepare_taxonomy', 'my_taxonomy_rest_prepare', 10, 3 ); function my_taxonomy_rest_prepare( $response, $taxonomy, $request ) { $schema = $response->get_schema(); $modified_schema = rest_default_additional_properties_to_false( $schema ); $response->set_schema( $modified_schema ); return $response; }
Customizing a user schema
Customize the schema for a user and set “additionalProperties” to false for all object definitions.
add_filter( 'rest_prepare_user', 'my_user_rest_prepare', 10, 3 ); function my_user_rest_prepare( $response, $user, $request ) { $schema = $response->get_schema(); $modified_schema = rest_default_additional_properties_to_false( $schema ); $response->set_schema( $modified_schema ); return $response; }