WP_oEmbed::get_provider( string $url, string|array $args = '' )
Takes a URL and returns the corresponding oEmbed provider’s URL, if there is one.
Description
See also
Parameters
- $url
-
(string) (Required) The URL to the content.
- $args
-
(string|array) (Optional) Additional provider arguments.
-
'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 value: ''
-
'discover'
Return
(string|false) The oEmbed provider URL on success, false on failure.
Source
File: wp-includes/class-wp-oembed.php
public function get_provider( $url, $args = '' ) {
$args = wp_parse_args( $args );
$provider = false;
if ( ! isset( $args['discover'] ) ) {
$args['discover'] = true;
}
foreach ( $this->providers as $matchmask => $data ) {
list( $providerurl, $regex ) = $data;
// Turn the asterisk-type provider URLs into regex.
if ( ! $regex ) {
$matchmask = '#' . str_replace( '___wildcard___', '(.+)', preg_quote( str_replace( '*', '___wildcard___', $matchmask ), '#' ) ) . '#i';
$matchmask = preg_replace( '|^#http\\\://|', '#https?\://', $matchmask );
}
if ( preg_match( $matchmask, $url ) ) {
$provider = str_replace( '{format}', 'json', $providerurl ); // JSON is easier to deal with than XML.
break;
}
}
if ( ! $provider && $args['discover'] ) {
$provider = $this->discover( $url );
}
return $provider;
} Changelog
| Version | Description |
|---|---|
| 4.0.0 | Introduced. |
© 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_oembed/get_provider