WP_REST_Server::get_target_hints_for_link()protected staticWP 6.7.0

Gets the target links for a REST API Link.

Method of the class: WP_REST_Server{}

No Hooks.

Return

Array|null.

Usage

$result = WP_REST_Server::get_target_hints_for_link( $link );
$link(array) (required)
-

Changelog

Since 6.7.0 Introduced.

WP_REST_Server::get_target_hints_for_link() code WP 6.7.1

protected static function get_target_hints_for_link( $link ) {
	// Prefer targetHints that were specifically designated by the developer.
	if ( isset( $link['targetHints']['allow'] ) ) {
		return null;
	}

	$request = WP_REST_Request::from_url( $link['href'] );
	if ( ! $request ) {
		return null;
	}

	$server = rest_get_server();
	$match  = $server->match_request_to_handler( $request );

	if ( is_wp_error( $match ) ) {
		return null;
	}

	if ( is_wp_error( $request->has_valid_params() ) ) {
		return null;
	}

	if ( is_wp_error( $request->sanitize_params() ) ) {
		return null;
	}

	$target_hints = array();

	$response = new WP_REST_Response();
	$response->set_matched_route( $match[0] );
	$response->set_matched_handler( $match[1] );
	$headers = rest_send_allow_header( $response, $server, $request )->get_headers();

	foreach ( $headers as $name => $value ) {
		$name = WP_REST_Request::canonicalize_header_name( $name );

		$target_hints[ $name ] = array_map( 'trim', explode( ',', $value ) );
	}

	return $target_hints;
}