rest_default_additional_properties_to_false

The timeline below displays how wordpress function rest_default_additional_properties_to_false has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.6

/**
 * Sets the "additionalProperties" to false by default for all object definitions in the schema.
 *
 * @since 5.5.0
 * @since 5.6.0 Support the "patternProperties" keyword.
 *
 * @param array $schema The schema to modify.
 * @return array The modified schema.
 */
function rest_default_additional_properties_to_false($schema)
{
    $type = (array) $schema['type'];
    if (in_array('object', $type, true)) {
        if (isset($schema['properties'])) {
            foreach ($schema['properties'] as $key => $child_schema) {
                $schema['properties'][$key] = rest_default_additional_properties_to_false($child_schema);
            }
        }
        if (isset($schema['patternProperties'])) {
            foreach ($schema['patternProperties'] as $key => $child_schema) {
                $schema['patternProperties'][$key] = rest_default_additional_properties_to_false($child_schema);
            }
        }
        if (!isset($schema['additionalProperties'])) {
            $schema['additionalProperties'] = false;
        }
    }
    if (in_array('array', $type, true)) {
        if (isset($schema['items'])) {
            $schema['items'] = rest_default_additional_properties_to_false($schema['items']);
        }
    }
    return $schema;
}

WordPress Version: 5.5

/**
 * Sets the "additionalProperties" to false by default for all object definitions in the schema.
 *
 * @since 5.5.0
 *
 * @param array $schema The schema to modify.
 * @return array The modified schema.
 */
function rest_default_additional_properties_to_false($schema)
{
    $type = (array) $schema['type'];
    if (in_array('object', $type, true)) {
        if (isset($schema['properties'])) {
            foreach ($schema['properties'] as $key => $child_schema) {
                $schema['properties'][$key] = rest_default_additional_properties_to_false($child_schema);
            }
        }
        if (!isset($schema['additionalProperties'])) {
            $schema['additionalProperties'] = false;
        }
    }
    if (in_array('array', $type, true)) {
        if (isset($schema['items'])) {
            $schema['items'] = rest_default_additional_properties_to_false($schema['items']);
        }
    }
    return $schema;
}