summaryrefslogtreecommitdiffstats
path: root/wp-includes/rest-api/search/class-wp-rest-search-handler.php
diff options
context:
space:
mode:
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.php100
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 );
+}