WP_REST_Server::get_compact_response_links() public WP 4.5.0
Retrieves the CURIEs (compact URIs) used for relations.
Extracts the links from a response into a structured hash, suitable for direct output.
{} It's a method of the class: WP_REST_Server{}
No Hooks.
Return
Array. Map of link relation to list of link hashes.
Usage
$result = WP_REST_Server::get_compact_response_links( $response );
- $response(WP_REST_Response) (required)
- Response to extract links from.
Changelog
Since 4.5.0 | Introduced. |
Code of WP_REST_Server::get_compact_response_links() WP REST Server::get compact response links WP 5.6.2
public static function get_compact_response_links( $response ) {
$links = self::get_response_links( $response );
if ( empty( $links ) ) {
return array();
}
$curies = $response->get_curies();
$used_curies = array();
foreach ( $links as $rel => $items ) {
// Convert $rel URIs to their compact versions if they exist.
foreach ( $curies as $curie ) {
$href_prefix = substr( $curie['href'], 0, strpos( $curie['href'], '{rel}' ) );
if ( strpos( $rel, $href_prefix ) !== 0 ) {
continue;
}
// Relation now changes from '$uri' to '$curie:$relation'.
$rel_regex = str_replace( '\{rel\}', '(.+)', preg_quote( $curie['href'], '!' ) );
preg_match( '!' . $rel_regex . '!', $rel, $matches );
if ( $matches ) {
$new_rel = $curie['name'] . ':' . $matches[1];
$used_curies[ $curie['name'] ] = $curie;
$links[ $new_rel ] = $items;
unset( $links[ $rel ] );
break;
}
}
}
// Push the curies onto the start of the links array.
if ( $used_curies ) {
$links['curies'] = array_values( $used_curies );
}
return $links;
}