WP_REST_Search_Controller::prepare_item_for_response( int|string $item, WP_REST_Request $request )

Prepares a single search result for response.


Parameters

$item

(Required) ID of the item to prepare.

$request

(Required) Request object.


Return

(WP_REST_Response) Response object.


Source

File: wp-includes/rest-api/endpoints/class-wp-rest-search-controller.php

	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;
	}


Changelog

Changelog
Version Description
5.9.0 Renamed $id to $item to match parent class for PHP 8 named parameter support.
5.6.0 The $id parameter can accept a string.
5.0.0 Introduced.