You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.1 KiB
97 lines
2.1 KiB
<?php |
|
/** |
|
* REST API: WP_REST_Search_Handler class |
|
* |
|
* @package WordPress |
|
* @subpackage REST_API |
|
* @since 5.0.0 |
|
*/ |
|
|
|
/** |
|
* Core base class representing a search handler for an object type in the REST API. |
|
* |
|
* @since 5.0.0 |
|
*/ |
|
abstract class WP_REST_Search_Handler { |
|
|
|
/** |
|
* Field containing the IDs in the search result. |
|
*/ |
|
const RESULT_IDS = 'ids'; |
|
|
|
/** |
|
* Field containing the total count in the search result. |
|
*/ |
|
const RESULT_TOTAL = 'total'; |
|
|
|
/** |
|
* Object type managed by this search handler. |
|
* |
|
* @since 5.0.0 |
|
* @var string |
|
*/ |
|
protected $type = ''; |
|
|
|
/** |
|
* Object subtypes managed by this search handler. |
|
* |
|
* @since 5.0.0 |
|
* @var array |
|
*/ |
|
protected $subtypes = array(); |
|
|
|
/** |
|
* Gets the object type managed by this search handler. |
|
* |
|
* @since 5.0.0 |
|
* |
|
* @return string Object type identifier. |
|
*/ |
|
public function get_type() { |
|
return $this->type; |
|
} |
|
|
|
/** |
|
* Gets the object subtypes managed by this search handler. |
|
* |
|
* @since 5.0.0 |
|
* |
|
* @return array Array of object subtype identifiers. |
|
*/ |
|
public function get_subtypes() { |
|
return $this->subtypes; |
|
} |
|
|
|
/** |
|
* Searches the object type content for a given search request. |
|
* |
|
* @since 5.0.0 |
|
* |
|
* @param WP_REST_Request $request Full REST request. |
|
* @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. |
|
*/ |
|
abstract public function search_items( WP_REST_Request $request ); |
|
|
|
/** |
|
* Prepares the search result for a given ID. |
|
* |
|
* @since 5.0.0 |
|
* |
|
* @param int $id Item ID. |
|
* @param array $fields Fields to include for the item. |
|
* @return array Associative array containing all fields for the item. |
|
*/ |
|
abstract public function prepare_item( $id, array $fields ); |
|
|
|
/** |
|
* Prepares links for the search result of a given ID. |
|
* |
|
* @since 5.0.0 |
|
* |
|
* @param int $id Item ID. |
|
* @return array Links for the given item. |
|
*/ |
|
abstract public function prepare_item_links( $id ); |
|
}
|
|
|