Je veux pouvoir prendre une URL et voir si le domaine est l'un de ceux que Wordpress prend en charge pour ajouter des intégrations via oEmbed. Y at-il une fonction intégrée qui fait cela dans WordPress ou aurais-je besoin de créer la mienne?
Exemple: si j'ai l'URL d'un site vidéo, je veux pouvoir examiner l'URL et pouvoir dire si le domaine est pris en charge par WordPress pour une utilisation en tant que vidéo.
wp-includes/class-oembed.php
a une variable publique $providers
. Vous pouvez donc créer une petite fonction pour les obtenir tous:
function list_oembed_providers( $print = TRUE )
{
require_once( ABSPATH . WPINC . '/class-oembed.php' );
$oembed = _wp_oembed_get_object();
$print and print '<pre>' . htmlspecialchars( var_export( $oembed->providers, TRUE ) ) . '</pre>';
return $oembed->providers;
}
Si vous appelez cette fonction…
list_oembed_providers();
… Vous obtenez dans WordPress 3.1.1:
array (
'#http://(www\\.)?youtube.com/watch.*#i' =>
array (
0 => 'http://www.youtube.com/oembed',
1 => true,
),
'http://youtu.be/*' =>
array (
0 => 'http://www.youtube.com/oembed',
1 => false,
),
'http://blip.tv/file/*' =>
array (
0 => 'http://blip.tv/oembed/',
1 => false,
),
'#http://(www\\.)?vimeo\\.com/.*#i' =>
array (
0 => 'http://www.vimeo.com/api/oembed.{format}',
1 => true,
),
'#http://(www\\.)?dailymotion\\.com/.*#i' =>
array (
0 => 'http://www.dailymotion.com/api/oembed',
1 => true,
),
'#http://(www\\.)?flickr\\.com/.*#i' =>
array (
0 => 'http://www.flickr.com/services/oembed/',
1 => true,
),
'#http://(.+)?smugmug\\.com/.*#i' =>
array (
0 => 'http://api.smugmug.com/services/oembed/',
1 => true,
),
'#http://(www\\.)?hulu\\.com/watch/.*#i' =>
array (
0 => 'http://www.hulu.com/api/oembed.{format}',
1 => true,
),
'#http://(www\\.)?viddler\\.com/.*#i' =>
array (
0 => 'http://lab.viddler.com/services/oembed/',
1 => true,
),
'http://qik.com/*' =>
array (
0 => 'http://qik.com/api/oembed.{format}',
1 => false,
),
'http://revision3.com/*' =>
array (
0 => 'http://revision3.com/api/oembed/',
1 => false,
),
'http://i*.photobucket.com/albums/*' =>
array (
0 => 'http://photobucket.com/oembed',
1 => false,
),
'http://gi*.photobucket.com/groups/*' =>
array (
0 => 'http://photobucket.com/oembed',
1 => false,
),
'#http://(www\\.)?scribd\\.com/.*#i' =>
array (
0 => 'http://www.scribd.com/services/oembed',
1 => true,
),
'http://wordpress.tv/*' =>
array (
0 => 'http://wordpress.tv/oembed/',
1 => false,
),
'#http://(answers|surveys)\\.polldaddy.com/.*#i' =>
array (
0 => 'http://polldaddy.com/oembed/',
1 => true,
),
'#http://(www\\.)?funnyordie\\.com/videos/.*#i' =>
array (
0 => 'http://www.funnyordie.com/oembed',
1 => true,
),
)