WP_REST_Controller::filter_response_by_context PHP Method

filter_response_by_context() public method

Filter a response based on the context defined in the schema.
public filter_response_by_context ( array $data, string $context ) : array
$data array
$context string
return array
    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'])) {
                unset($data[$key]);
            }
            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'])) {
                        if (isset($data[$key][$attribute])) {
                            unset($data[$key][$attribute]);
                        }
                    }
                }
            }
        }
        return $data;
    }