WP_oEmbed::fetch( string $provider, string $url, array|string $args = '' )

Connects to a oEmbed provider and returns the result.


Parameters

$provider

(Required) The URL to the oEmbed provider.

$url

(Required) The URL to the content that is desired to be embedded.

$args

(Optional) Arguments, usually passed from a shortcode.

Default value: ''


Return

(false|object) False on failure, otherwise the result in the form of an object.


Source

File: wp-includes/class-oembed.php

	public function fetch( $provider, $url, $args = '' ) {
		$args = wp_parse_args( $args, wp_embed_defaults( $url ) );

		$provider = add_query_arg( 'maxwidth', (int) $args['width'], $provider );
		$provider = add_query_arg( 'maxheight', (int) $args['height'], $provider );
		$provider = add_query_arg( 'url', urlencode($url), $provider );
		$provider = add_query_arg( 'dnt', 1, $provider );

		/**
		 * Filters the oEmbed URL to be fetched.
		 *
		 * @since WP-2.9.0
		 * @since WP-4.9.0 The `dnt` (Do Not Track) query parameter was added to all oEmbed provider URLs.
		 *
		 * @param string $provider URL of the oEmbed provider.
		 * @param string $url      URL of the content to be embedded.
		 * @param array  $args     Optional arguments, usually passed from a shortcode.
		 */
		$provider = apply_filters( 'oembed_fetch_url', $provider, $url, $args );

		foreach ( array( 'json', 'xml' ) as $format ) {
			$result = $this->_fetch_with_format( $provider, $format );
			if ( is_wp_error( $result ) && 'not-implemented' == $result->get_error_code() )
				continue;
			return ( $result && ! is_wp_error( $result ) ) ? $result : false;
		}
		return false;
	}


Changelog

Changelog
Version Description
WP-2.9.0 Introduced.