WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Рекомендуемые продукты со скидкой от Template Monster
функция не описана

WP_oEmbed_Controller::get_proxy_item() WP 4.8.0

Callback for the proxy API endpoint.

Returns the JSON object for the proxied item.

Это метод класса: WP_oEmbed_Controller

Хуки из метода
Возвращает

Объект/WP_Error. oEmbed response data or WP_Error on failure.

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

$WP_oEmbed_Controller = new WP_oEmbed_Controller();
$var = $WP_oEmbed_Controller->get_proxy_item( $request );
$request(WP_REST_Request) (обязательный)
Full data about the request.

Заметки

  • Смотрите: WP_oEmbed::get_html()

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

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

Код WP oEmbed Controller::get proxy item: wp-includes/class-wp-oembed-controller.php WP 5.2.4

<?php
public function get_proxy_item( $request ) {
	$args = $request->get_params();

	// Serve oEmbed data from cache if set.
	unset( $args['_wpnonce'] );
	$cache_key = 'oembed_' . md5( serialize( $args ) );
	$data      = get_transient( $cache_key );
	if ( ! empty( $data ) ) {
		return $data;
	}

	$url = $request['url'];
	unset( $args['url'] );

	// Copy maxwidth/maxheight to width/height since WP_oEmbed::fetch() uses these arg names.
	if ( isset( $args['maxwidth'] ) ) {
		$args['width'] = $args['maxwidth'];
	}
	if ( isset( $args['maxheight'] ) ) {
		$args['height'] = $args['maxheight'];
	}

	// Short-circuit process for URLs belonging to the current site.
	$data = get_oembed_response_data_for_url( $url, $args );

	if ( $data ) {
		return $data;
	}

	$data = _wp_oembed_get_object()->get_data( $url, $args );

	if ( false === $data ) {
		return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) );
	}

	/** This filter is documented in wp-includes/class-oembed.php */
	$data->html = apply_filters( 'oembed_result', _wp_oembed_get_object()->data2html( (object) $data, $url ), $url, $args );

	/**
	 * Filters the oEmbed TTL value (time to live).
	 *
	 * Similar to the {@see 'oembed_ttl'} filter, but for the REST API
	 * oEmbed proxy endpoint.
	 *
	 * @since 4.8.0
	 *
	 * @param int    $time    Time to live (in seconds).
	 * @param string $url     The attempted embed URL.
	 * @param array  $args    An array of embed request arguments.
	 */
	$ttl = apply_filters( 'rest_oembed_ttl', DAY_IN_SECONDS, $url, $args );

	set_transient( $cache_key, $data, $ttl );

	return $data;
}