WP_REST_Server::get_target_hints_for_link()protected staticWP 6.7.0

Gets the target links for a REST API Link.

Метод класса: WP_REST_Server{}

Хуков нет.

Возвращает

Массив|null.

Использование

$result = WP_REST_Server::get_target_hints_for_link( $link );
$link(массив) (обязательный)
-

Список изменений

С версии 6.7.0 Введена.

Код WP_REST_Server::get_target_hints_for_link() 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;
}