Gibt es eine eingebaute function, um zu sehen, ob eine URL mit oEmbed kompatibel ist?

Ich möchte in der Lage sein, eine URL zu nehmen und zu sehen, ob die Domain eine von denen ist, die WordPress unterstützt, um Embeds über oEmbed hinzuzufügen. Gibt es eine eingebaute function, die das in WordPress macht oder müsste ich meine eigene erstellen?

Beispiel: Wenn ich eine URL von einer Video-Site habe, möchte ich in der Lage sein, die URL zu überprüfen und feststellen zu können, ob die Domain von WordPress unterstützt wird, um sie als Video einzubetten.

Solutions Collecting From Web of "Gibt es eine eingebaute function, um zu sehen, ob eine URL mit oEmbed kompatibel ist?"

wp-includes/class-oembed.php hat eine öffentliche Variable $providers . Sie können also eine kleine function erstellen, um alle zu erhalten:

 function list_oembed_providers( $print = TRUE ) { require_once( ABSPATH . WPINC . '/class-oembed.php' ); $oembed = _wp_oembed_get_object(); $print and print '
' . htmlspecialchars( var_export( $oembed->providers, TRUE ) ) . '

'; return $oembed->providers; }

Wenn Sie diese function aufrufen …

 list_oembed_providers(); 

… bekommst du in 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, ), )