rest_preload_api_request( array $memo, string $path )
Append result of internal request to REST API for purpose of preloading data to be attached to a page.
Description Description
Expected to be called in the context of array_reduce
.
Parameters Parameters
- $memo
-
(array) (Required) Reduce accumulator.
- $path
-
(string) (Required) REST API path to preload.
Return Return
(array) Modified reduce accumulator.
Source Source
File: wp-includes/rest-api.php
function rest_preload_api_request( $memo, $path ) { // array_reduce() doesn't support passing an array in PHP 5.2, so we need to make sure we start with one. if ( ! is_array( $memo ) ) { $memo = array(); } if ( empty( $path ) ) { return $memo; } $method = 'GET'; if ( is_array( $path ) && 2 === count( $path ) ) { $method = end( $path ); $path = reset( $path ); if ( ! in_array( $method, array( 'GET', 'OPTIONS' ), true ) ) { $method = 'GET'; } } $path_parts = parse_url( $path ); if ( false === $path_parts ) { return $memo; } $request = new WP_REST_Request( $method, $path_parts['path'] ); if ( ! empty( $path_parts['query'] ) ) { parse_str( $path_parts['query'], $query_params ); $request->set_query_params( $query_params ); } $response = rest_do_request( $request ); if ( 200 === $response->status ) { $server = rest_get_server(); $data = (array) $response->get_data(); $links = $server::get_compact_response_links( $response ); if ( ! empty( $links ) ) { $data['_links'] = $links; } if ( 'OPTIONS' === $method ) { $response = rest_send_allow_header( $response, $server, $request ); $memo[ $method ][ $path ] = array( 'body' => $data, 'headers' => $response->headers, ); } else { $memo[ $path ] = array( 'body' => $data, 'headers' => $response->headers, ); } } return $memo; }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
5.0.0 | Introduced. |