WP_REST_Post_Search_Handler::search_items() WordPress Method

The WP_REST_Post_Search_Handler::search_items() method is used to search for posts based on a given search query. The search query is passed to the method as a string value. The method returns an array of WP_Post objects that match the search query.

WP_REST_Post_Search_Handler::search_items( WP_REST_Request $request ) #

Searches the object type content for a given search request.


Parameters

$request

(WP_REST_Request)(Required)Full REST request.


Top ↑

Return

(array) Associative array containing an WP_REST_Search_Handler::RESULT_IDS containing an array of found IDs and WP_REST_Search_Handler::RESULT_TOTAL containing the total count for the matching search results.


Top ↑

Source

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

	public function search_items( WP_REST_Request $request ) {

		// Get the post types to search for the current request.
		$post_types = $request[ WP_REST_Search_Controller::PROP_SUBTYPE ];
		if ( in_array( WP_REST_Search_Controller::TYPE_ANY, $post_types, true ) ) {
			$post_types = $this->subtypes;
		}

		$query_args = array(
			'post_type'           => $post_types,
			'post_status'         => 'publish',
			'paged'               => (int) $request['page'],
			'posts_per_page'      => (int) $request['per_page'],
			'ignore_sticky_posts' => true,
			'fields'              => 'ids',
		);

		if ( ! empty( $request['search'] ) ) {
			$query_args['s'] = $request['search'];
		}

		/**
		 * Filters the query arguments for a REST API search request.
		 *
		 * Enables adding extra arguments or setting defaults for a post search request.
		 *
		 * @since 5.1.0
		 *
		 * @param array           $query_args Key value array of query var to query value.
		 * @param WP_REST_Request $request    The request used.
		 */
		$query_args = apply_filters( 'rest_post_search_query', $query_args, $request );

		$query     = new WP_Query();
		$found_ids = $query->query( $query_args );
		$total     = $query->found_posts;

		return array(
			self::RESULT_IDS   => $found_ids,
			self::RESULT_TOTAL => $total,
		);
	}


Top ↑

Changelog

Changelog
VersionDescription
5.0.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.