WP_REST_Server::envelope_response( WP_REST_Response $response, bool|string[] $embed ): WP_REST_Response

Wraps the response in an envelope.


The enveloping technique is used to work around browser/client compatibility issues. Essentially, it converts the full HTTP response to data instead.

Top ↑


$response WP_REST_Response Required
Response object.
$embed bool|string[] Required
Whether to embed all links, a filtered list of link relations, or no links.

Top ↑


WP_REST_Response New response with wrapped data

Top ↑


File: wp-includes/rest-api/class-wp-rest-server.php. View all references

public function envelope_response( $response, $embed ) {
	$envelope = array(
		'body'    => $this->response_to_data( $response, $embed ),
		'status'  => $response->get_status(),
		'headers' => $response->get_headers(),

	 * Filters the enveloped form of a REST API response.
	 * @since 4.4.0
	 * @param array            $envelope {
	 *     Envelope data.
	 *     @type array $body    Response data.
	 *     @type int   $status  The 3-digit HTTP status code.
	 *     @type array $headers Map of header name to header value.
	 * }
	 * @param WP_REST_Response $response Original response data.
	$envelope = apply_filters( 'rest_envelope_response', $envelope, $response );

	// Ensure it's still a response and return.
	return rest_ensure_response( $envelope );

Top ↑


Top ↑


Version Description
6.0.0 The $embed parameter can now contain a list of link relations to include.
4.4.0 Introduced.

Top ↑

User Contributed Notes

You must log in before being able to contribute a note or feedback.