WP_REST_Post_Search_Handler::prepare_item( int $id, array $fields ): array

Prepares the search result for a given ID.


Parameters

$id int Required
Item ID.
$fields array Required
Fields to include for the item.

Top ↑

Return

array Associative array containing all fields for the item.


Top ↑

Source

File: wp-includes/rest-api/search/class-wp-rest-post-search-handler.php. View all references

public function prepare_item( $id, array $fields ) {
	$post = get_post( $id );

	$data = array();

	if ( in_array( WP_REST_Search_Controller::PROP_ID, $fields, true ) ) {
		$data[ WP_REST_Search_Controller::PROP_ID ] = (int) $post->ID;
	}

	if ( in_array( WP_REST_Search_Controller::PROP_TITLE, $fields, true ) ) {
		if ( post_type_supports( $post->post_type, 'title' ) ) {
			add_filter( 'protected_title_format', array( $this, 'protected_title_format' ) );
			$data[ WP_REST_Search_Controller::PROP_TITLE ] = get_the_title( $post->ID );
			remove_filter( 'protected_title_format', array( $this, 'protected_title_format' ) );
		} else {
			$data[ WP_REST_Search_Controller::PROP_TITLE ] = '';
		}
	}

	if ( in_array( WP_REST_Search_Controller::PROP_URL, $fields, true ) ) {
		$data[ WP_REST_Search_Controller::PROP_URL ] = get_permalink( $post->ID );
	}

	if ( in_array( WP_REST_Search_Controller::PROP_TYPE, $fields, true ) ) {
		$data[ WP_REST_Search_Controller::PROP_TYPE ] = $this->type;
	}

	if ( in_array( WP_REST_Search_Controller::PROP_SUBTYPE, $fields, true ) ) {
		$data[ WP_REST_Search_Controller::PROP_SUBTYPE ] = $post->post_type;
	}

	return $data;
}


Top ↑

Changelog

Changelog
Version Description
5.0.0 Introduced.

Top ↑

User Contributed Notes

You must log in before being able to contribute a note or feedback.