Alert: This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.

_oembed_rest_pre_serve_request() WordPress Function

The oembed_rest_pre_serve_request function is used to filter the response data before it is served for an oEmbed request. This function takes two arguments: the response data and the WP_HTTP_Response object.

_oembed_rest_pre_serve_request( bool $served, WP_HTTP_Response $result, WP_REST_Request $request, WP_REST_Server $server ) #

Hooks into the REST API output to print XML instead of JSON.


Description

This is only done for the oEmbed API endpoint, which supports both formats.


Top ↑

Parameters

$served

(bool)(Required)Whether the request has already been served.

$result

(WP_HTTP_Response)(Required)Result to send to the client. Usually a WP_REST_Response.

$request

(WP_REST_Request)(Required)Request used to generate the response.

$server

(WP_REST_Server)(Required)Server instance.


Top ↑

Return

(true)


Top ↑

Source

File: wp-includes/embed.php

function _oembed_rest_pre_serve_request( $served, $result, $request, $server ) {
	$params = $request->get_params();

	if ( '/oembed/1.0/embed' !== $request->get_route() || 'GET' !== $request->get_method() ) {
		return $served;
	}

	if ( ! isset( $params['format'] ) || 'xml' !== $params['format'] ) {
		return $served;
	}

	// Embed links inside the request.
	$data = $server->response_to_data( $result, false );

	if ( ! class_exists( 'SimpleXMLElement' ) ) {
		status_header( 501 );
		die( get_status_header_desc( 501 ) );
	}

	$result = _oembed_create_xml( $data );

	// Bail if there's no XML.
	if ( ! $result ) {
		status_header( 501 );
		return get_status_header_desc( 501 );
	}

	if ( ! headers_sent() ) {
		$server->send_header( 'Content-Type', 'text/xml; charset=' . get_option( 'blog_charset' ) );
	}

	echo $result;

	return true;
}


Top ↑

Changelog

Changelog
VersionDescription
4.4.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.