W3cubDocs

/WordPress

WP_REST_Meta_Fields::default_additional_properties_to_false( array $schema )

Recursively add additionalProperties = false to all objects in a schema if no additionalProperties setting is specified.

Description

This is needed to restrict properties of objects in meta values to only registered items, as the REST API will allow additional properties by default.

Parameters

$schema

(array) (Required) The schema array.

Return

(array)

Source

File: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php

protected function default_additional_properties_to_false( $schema ) {
		switch ( $schema['type'] ) {
			case 'object':
				foreach ( $schema['properties'] as $key => $child_schema ) {
					$schema['properties'][ $key ] = $this->default_additional_properties_to_false( $child_schema );
				}

				if ( ! isset( $schema['additionalProperties'] ) ) {
					$schema['additionalProperties'] = false;
				}
				break;
			case 'array':
				$schema['items'] = $this->default_additional_properties_to_false( $schema['items'] );
				break;
		}

		return $schema;
	}

Changelog

Version Description
5.3.0 Introduced.

© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_rest_meta_fields/default_additional_properties_to_false