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

In this article

Connects to an oEmbed provider and returns the result.

Parameters

$providerstringrequired
The URL to the oEmbed provider.
$urlstringrequired
The URL to the content that is desired to be embedded.
$argsstring|arrayoptional
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.
  • width int|string
    Optional. The maxwidth value passed to the provider URL.
  • height int|string
    Optional. The maxheight value passed to the provider URL.
  • discover bool
    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:''

Return

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

Source

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;
}

Hooks

apply_filters( ‘oembed_fetch_url’, string $provider, string $url, array $args )

Filters the oEmbed URL to be fetched.

Changelog

VersionDescription
2.9.0Introduced.

User Contributed Notes

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