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

Connects to a oEmbed provider and returns the result.


Parameters

$provider string Required
The URL to the oEmbed provider.
$url string Required
The URL to the content that is desired to be embedded.
$args string|array Optional
Additional arguments for retrieving embed HTML.
See wp_oembed_get() for accepted arguments.
More Arguments from wp_oembed_get( ... $args ) Additional arguments for retrieving embed HTML.
  • widthint|string
    Optional. The maxwidth value passed to the provider URL.
  • heightint|string
    Optional. The maxheight value passed to the provider URL.
  • discoverbool
    Optional. Determines whether to attempt to discover link tags at the given URL for an oEmbed provider when the provider URL is not found in the built-in providers list. Default true.

Default: ''


Top ↑

Return

object|false The result in the form of an object on success, false on failure.


Top ↑

Source

File: wp-includes/class-wp-oembed.php. View all references

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 2.9.0
	 * @since 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. Additional arguments for retrieving embed HTML.
	 *                         See wp_oembed_get() for accepted arguments. Default empty.
	 */
	$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;
}

Top ↑

Hooks



Top ↑

Changelog

Changelog
Version Description
2.9.0 Introduced.

Top ↑

User Contributed Notes

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