wppaste
WordPress

WP_REST_Term_Search_Handler

Since
5.6.0
Source
wp-includes/rest-api/search/class-wp-rest-term-search-handler.php:17
Core class representing a search handler for terms in the REST API.

Compatibility

WordPress
since 5.6.0
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0).

Hooks and filters fired · 1

Every hook that fires from inside WP_REST_Term_Search_Handler, in the order it appears in the class, grouped by the method that fires it.

Methods · 4

Source code

class WP_REST_Term_Search_Handler extends WP_REST_Search_Handler { 	/**	 * Constructor.	 *	 * @since 5.6.0	 */	public function __construct() {		$this->type = 'term'; 		$this->subtypes = array_values(			get_taxonomies(				array(					'public'       => true,					'show_in_rest' => true,				),				'names'			)		);	} 	/**	 * Searches terms for a given search request.	 *	 * @since 5.6.0	 *	 * @param WP_REST_Request $request Full REST request.	 * @return array {	 *     Associative array containing found IDs and total count for the matching search results.	 *	 *     @type int[]               $ids   Found term IDs.	 *     @type string|int|WP_Error $total Numeric string containing the number of terms in that	 *                                      taxonomy, 0 if there are no results, or WP_Error if	 *                                      the requested taxonomy does not exist.	 * }	 */	public function search_items( WP_REST_Request $request ) {		$taxonomies = $request[ WP_REST_Search_Controller::PROP_SUBTYPE ];		if ( in_array( WP_REST_Search_Controller::TYPE_ANY, $taxonomies, true ) ) {			$taxonomies = $this->subtypes;		} 		$page     = (int) $request['page'];		$per_page = (int) $request['per_page']; 		$query_args = array(			'taxonomy'   => $taxonomies,			'hide_empty' => false,			'offset'     => ( $page - 1 ) * $per_page,			'number'     => $per_page,		); 		if ( ! empty( $request['search'] ) ) {			$query_args['search'] = $request['search'];		} 		if ( ! empty( $request['exclude'] ) ) {			$query_args['exclude'] = $request['exclude'];		} 		if ( ! empty( $request['include'] ) ) {			$query_args['include'] = $request['include'];		} 		/**		 * Filters the query arguments for a REST API term search request.		 *		 * Enables adding extra arguments or setting defaults for a term search request.		 *		 * @since 5.6.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_term_search_query', $query_args, $request ); 		$query       = new WP_Term_Query();		$found_terms = $query->query( $query_args );		$found_ids   = wp_list_pluck( $found_terms, 'term_id' );

Changelog

Introduced in 5.6.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 6.9.7 tag, from src/wp-includes/rest-api/search/class-wp-rest-term-search-handler.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.