diff options
Diffstat (limited to 'wp-includes/rest-api/search/class-wp-rest-search-handler.php')
-rw-r--r-- | wp-includes/rest-api/search/class-wp-rest-search-handler.php | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/wp-includes/rest-api/search/class-wp-rest-search-handler.php b/wp-includes/rest-api/search/class-wp-rest-search-handler.php new file mode 100644 index 0000000..cc9dcf8 --- /dev/null +++ b/wp-includes/rest-api/search/class-wp-rest-search-handler.php @@ -0,0 +1,100 @@ +<?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 + */ +#[AllowDynamicProperties] +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 string[] + */ + 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 string[] 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 + * @since 5.6.0 The `$id` parameter can accept a string. + * + * @param int|string $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 + * @since 5.6.0 The `$id` parameter can accept a string. + * + * @param int|string $id Item ID. + * @return array Links for the given item. + */ + abstract public function prepare_item_links( $id ); +} |