Filtra la risposta per rimuovere i campi non disponibili nel contesto dato.

Parametri

$dati

(array|oggetto)(Richiesto)I dati di risposta da modificare.

$schema

(array)(Richiesto)Lo schema dell'endpoint usato per filtrare la risposta.

$contesto

(stringa)(Richiesto)Il contesto richiesto.

Ritorno

(array|oggetto) I dati di risposta filtrati.

Fonte

File: wp-includes/rest-api.php

functionrest_filter_response_by_context($data,$schema,$context){if(isset($schema['anyOf'])){$matching_schema=rest_find_any_matching_schema($data,$schema,'');if(!is_wp_error($matching_schema)){if(!isset($schema['type'])){$schema['type']=$matching_schema['type'];}$data=rest_filter_response_by_context($data,$matching_schema,$context);}}if(isset($schema['oneOf'])){$matching_schema=rest_find_one_matching_schema($data,$schema,'',true);if(!is_wp_error($matching_schema)){if(!isset($schema['type'])){$schema['type']=$matching_schema['type'];}$data=rest_filter_response_by_context($data,$matching_schema,$context);}}if(!is_array($data)&&!is_object($data)){return$data;}if(isset($schema['type'])){$type=$schema['type'];}elseif(isset($schema['properties'])){$type='object';// Back compat if a developer accidentally omitted the type.}else{return$data;}$is_array_type='array'===$type||(is_array($type)&&in_array('array',$type,true));$is_object_type='object'===$type||(is_array($type)&&in_array('object',$type,true));if($is_array_type&&$is_object_type){if(rest_is_array($data)){$is_object_type=false;}else{$is_array_type=false;}}$has_additional_properties=$is_object_type&&isset($schema['additionalProperties'])&&is_array($schema['additionalProperties']);foreach($dataas$key=>$value){$check=array();if($is_array_type){$check=isset($schema['items'])?$schema['items']:array();}elseif($is_object_type){if(isset($schema['properties'][$key])){$check=$schema['properties'][$key];}else{$pattern_property_schema=rest_find_matching_pattern_property_schema($key,$schema);if(null!==$pattern_property_schema){$check=$pattern_property_schema;}elseif($has_additional_properties){$check=$schema['additionalProperties'];}}}if(!isset($check['context'])){continue;}if(!in_array($context,$check['context'],true)){if($is_array_type){// All array items share schema, so there's no need to check each one.$data=array();break;}if(is_object($data)){unset($data->$key);}else{unset($data[$key]);}}elseif(is_array($value)||is_object($value)){$new_value=rest_filter_response_by_context($value,$check,$context);if(is_object($data)){$data->$key=$new_value;}else{$data[$key]=$new_value;}}}return$data;}

Correlato

Utilizzi

Usi Descrizione
wp-includes/rest-api.php: rest_find_any_matching_schema()

Trova lo schema corrispondente tra gli schemi "anyOf".

wp-includes/rest-api.php: rest_find_one_matching_schema()

Trova lo schema corrispondente tra gli schemi "oneOf".

wp-includes/rest-api.php: rest_find_matching_pattern_property_schema()

Trova lo schema di una proprietà usando la parola chiave patternProperties.

wp-includes/rest-api.php: rest_filter_response_by_context()

Filtra la risposta per rimuovere i campi non disponibili nel contesto dato.

wp-includes/rest-api.php: rest_is_array()

Determina se un dato valore è di tipo array.

wp-includes/load.php: is_wp_error()

Controlla se la variabile data è un errore di WordPress.

Utilizzato da

Usato da Descrizione
wp-includes/rest-api.php: rest_filter_response_by_context()

Filtra la risposta per rimuovere i campi non disponibili nel contesto dato.

wp-includes/rest-api/endpoints/class-wp-rest-controller.php: WP_REST_Controller::filter_response_by_context()

Filtra una risposta in base al contesto definito nello schema.

Changelog

Versione Descrizione
5.6.0 Supportare la parola chiave "patternProperties" per gli oggetti. Supporta le parole chiave "anyOf" e "oneOf".
5.5.0 Introdotto.