WP_REST_Search_Controller::prepare_item_for_response()publicWP 5.0.0

Prepares a single search result for response.

Метод класса: WP_REST_Search_Controller{}

Хуков нет.

Возвращает

WP_REST_Response. Response object.

Использование

$WP_REST_Search_Controller = new WP_REST_Search_Controller();
$WP_REST_Search_Controller->prepare_item_for_response( $item, $request );
$item(int|строка) (обязательный)
ID of the item to prepare.
$request(WP_REST_Request) (обязательный)
Request object.

Список изменений

С версии 5.0.0 Введена.
С версии 5.6.0 The $id parameter can accept a string.
С версии 5.9.0 Renamed $id to $item to match parent class for PHP 8 named parameter support.

Код WP_REST_Search_Controller::prepare_item_for_response() WP 6.4.3

public function prepare_item_for_response( $item, $request ) {
	// Restores the more descriptive, specific name for use within this method.
	$item_id = $item;

	$handler = $this->get_search_handler( $request );
	if ( is_wp_error( $handler ) ) {
		return new WP_REST_Response();
	}

	$fields = $this->get_fields_for_response( $request );

	$data = $handler->prepare_item( $item_id, $fields );
	$data = $this->add_additional_fields_to_object( $data, $request );

	$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
	$data    = $this->filter_response_by_context( $data, $context );

	$response = rest_ensure_response( $data );

	if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) {
		$links               = $handler->prepare_item_links( $item_id );
		$links['collection'] = array(
			'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ),
		);
		$response->add_links( $links );
	}

	return $response;
}