WP_REST_Controller::filter_response_by_context( array $response_data, string $context )
Filters a response based on the context defined in the schema.
Parameters
- $response_data
-
(Required) Response data to filter.
- $context
-
(Required) Context defined in the schema.
Return
(array) Filtered response.
Source
File: wp-includes/rest-api/endpoints/class-wp-rest-controller.php
public function filter_response_by_context( $data, $context ) {
$schema = $this->get_item_schema();
foreach ( $data as $key => $value ) {
if ( empty( $schema['properties'][ $key ] ) || empty( $schema['properties'][ $key ]['context'] ) ) {
continue;
}
if ( ! in_array( $context, $schema['properties'][ $key ]['context'], true ) ) {
unset( $data[ $key ] );
continue;
}
if ( 'object' === $schema['properties'][ $key ]['type'] && ! empty( $schema['properties'][ $key ]['properties'] ) ) {
foreach ( $schema['properties'][ $key ]['properties'] as $attribute => $details ) {
if ( empty( $details['context'] ) ) {
continue;
}
if ( ! in_array( $context, $details['context'], true ) ) {
if ( isset( $data[ $key ][ $attribute ] ) ) {
unset( $data[ $key ][ $attribute ] );
}
}
}
}
}
return $data;
}
Changelog
Version | Description |
---|---|
4.7.0 | Introduced. |