Есть ли встроенная функция для проверки совместимости URL-адреса?

Я хочу, чтобы иметь возможность взять URL-адрес и посмотреть, является ли домен одним из тех, что WordPress поддерживает для добавления вложений через oEmbed. Есть ли встроенная функция, которая делает это в WordPress или мне нужно создать свою собственную?

Пример: если у меня есть URL-адрес с сайта видео, я хочу проверить URL-адрес и узнать, поддерживается ли домен WordPress для его использования в качестве видео.

wp-includes/class-oembed.php имеет общедоступную переменную $providers . Таким образом, вы можете создать небольшую функцию, чтобы получить все из них:

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

Если вы вызываете эту функцию …

 list_oembed_providers(); 

… вы попадаете в 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, ), )