} if ( in_array( WP_REST_Search_Controller::PROP_URL, $fields, true ) ) { $data[ WP_REST_Search_Controller::PROP_URL ] = get_permalink( $post->ID ); } if ( in_array( WP_REST_Search_Controller::PROP_TYPE, $fields, true ) ) { $data[ WP_REST_Search_Controller::PROP_TYPE ] = $this->type; } if ( in_array( WP_REST_Search_Controller::PROP_SUBTYPE, $fields, true ) ) { $data[ WP_REST_Search_Controller::PROP_SUBTYPE ] = $post->post_type; } return $data; } /** * 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. */ public function prepare_item_links( $id ) { $post = get_post( $id ); $links = array(); $item_route = rest_get_route_for_post( $post ); if ( ! empty( $item_route ) ) { $links['self'] = array( 'href' => rest_url( $item_route ), 'embeddable' => true, ); } $links['about'] = array( 'href' => rest_url( 'wp/v2/types/' . $post->post_type ), ); return $links; } /** * Overwrites the default protected and private title format. * * By default, WordPress will show password protected or private posts with a title of * "Protected: %s" or "Private: %s", as the REST API communicates the status of a post * in a machine-readable format, we remove the prefix. * * @since 5.0.0 * * @return string Title format. */ public function protected_title_format() { return '%s'; } /** * Attempts to detect the route to access a single item. * * @since 5.0.0 * @deprecated 5.5.0 Use rest_get_route_for_post() * @see rest_get_route_for_post() * * @param WP_Post $post Post object. * @return string REST route relative to the REST base URI, or empty string if unknown. */ protected function detect_rest_item_route( $post ) { _deprecated_function( __METHOD__, '5.5.0', 'rest_get_route_for_post()' ); return rest_get_route_for_post( $post ); } }
Fatal error: Uncaught Error: Class "WP_REST_Post_Search_Handler" not found in /htdocs/wp-includes/rest-api.php:328 Stack trace: #0 /htdocs/wp-includes/class-wp-hook.php(324): create_initial_rest_routes(Object(WP_REST_Server)) #1 /htdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #2 /htdocs/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #3 /htdocs/wp-includes/rest-api.php(618): do_action('rest_api_init', Object(WP_REST_Server)) #4 /htdocs/wp-includes/rest-api.php(442): rest_get_server() #5 /htdocs/wp-includes/class-wp-hook.php(324): rest_api_loaded(Object(WP)) #6 /htdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(Object(WP), Array) #7 /htdocs/wp-includes/plugin.php(565): WP_Hook->do_action(Array) #8 /htdocs/wp-includes/class-wp.php(418): do_action_ref_array('parse_request', Array) #9 /htdocs/wp-includes/class-wp.php(813): WP->parse_request('') #10 /htdocs/wp-includes/functions.php(1336): WP->main('') #11 /htdocs/wp-blog-header.php(16): wp() #12 /htdocs/index.php(17): require('/htdocs/wp-blog...') #13 {main} thrown in /htdocs/wp-includes/rest-api.php on line 328