Takes a URL and returns the corresponding oEmbed provider’s URL, if there is one.
Description
See also
Parameters
$urlstringrequired- The URL to the content.
$argsstring|arrayoptional- Additional provider arguments. Default empty.
discoverboolOptional. 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.
Source
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. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.