本文整理汇总了PHP中WP_oEmbed类的典型用法代码示例。如果您正苦于以下问题:PHP WP_oEmbed类的具体用法?PHP WP_oEmbed怎么用?PHP WP_oEmbed使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WP_oEmbed类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: get_html
/**
* The do-it-all function that takes a URL and attempts to return the HTML.
*
* @see WP_oEmbed::discover()
* @see WP_oEmbed::fetch()
* @see WP_oEmbed::data2html()
*
* @param string $url The URL to the content that should be attempted to be embedded.
* @param array $args Optional arguments. Usually passed from a shortcode.
* @return bool|string False on failure, otherwise the UNSANITIZED (and potentially unsafe) HTML that should be used to embed.
*/
public function get_html($strURL, $arrArgs = array())
{
if (isset($GLOBALS['arrFetchTweets_oEmbed'][$strURL])) {
return $GLOBALS['arrFetchTweets_oEmbed'][$strURL];
}
$strHTML = parent::get_html($strURL, $arrArgs);
// Store the result in the global array.
$GLOBALS['arrFetchTweets_oEmbed'][$strURL] = $strHTML;
return $strHTML;
}
示例2: instant_articles_embed_oembed_html
/**
* Filter the oembed results to see if we should do some extra handling
*
* @since 0.1
* @param string $html The original HTML returned from the external oembed provider.
* @param string $url The URL found in the content.
* @param mixed $attr An array with extra attributes.
* @param int $post_id The post ID.
* @return string The potentially filtered HTML.
*/
function instant_articles_embed_oembed_html($html, $url, $attr, $post_id)
{
if (!class_exists('WP_oEmbed')) {
include_once ABSPATH . WPINC . '/class-oembed.php';
}
// Instead of checking all possible URL variants, use the provider list from WP_oEmbed.
$wp_oembed = new WP_oEmbed();
$provider_url = $wp_oembed->get_provider($url);
$provider_name = false;
if (false !== strpos($provider_url, 'instagram.com')) {
$provider_name = 'instagram';
} elseif (false !== strpos($provider_url, 'twitter.com')) {
$provider_name = 'twitter';
} elseif (false !== strpos($provider_url, 'youtube.com')) {
$provider_name = 'youtube';
} elseif (false !== strpos($provider_url, 'vine.co')) {
$provider_name = 'vine';
}
$provider_name = apply_filters('instant_articles_social_embed_type', $provider_name, $url);
if ($provider_name) {
$html = instant_articles_embed_get_html($provider_name, $html, $url, $attr, $post_id);
}
return $html;
}
示例3: wp_oembed_remove_provider
/**
* Removes an oEmbed provider.
*
* @since 3.5.0
*
* @see WP_oEmbed
*
* @param string $format The URL format for the oEmbed provider to remove.
* @return bool Was the provider removed successfully?
*/
function wp_oembed_remove_provider($format)
{
require_once ABSPATH . WPINC . '/class-oembed.php';
if (did_action('plugins_loaded')) {
$oembed = _wp_oembed_get_object();
if (isset($oembed->providers[$format])) {
unset($oembed->providers[$format]);
return true;
}
} else {
WP_oEmbed::_remove_provider_early($format);
}
return false;
}
示例4: wp_oembed_remove_provider
/**
* Removes an oEmbed provider.
*
* @since 3.5.0
*
* @see WP_oEmbed
*
* @param string $format The URL format for the oEmbed provider to remove.
* @return bool Was the provider removed successfully?
*/
function wp_oembed_remove_provider($format)
{
if (did_action('plugins_loaded')) {
$oembed = _wp_oembed_get_object();
if (isset($oembed->providers[$format])) {
unset($oembed->providers[$format]);
return true;
}
} else {
WP_oEmbed::_remove_provider_early($format);
}
return false;
}
示例5: ale_get_embed_video
function ale_get_embed_video($url)
{
require_once ABSPATH . WPINC . '/class-oembed.php';
$WP_oEmbed = new WP_oEmbed();
$provider = $WP_oEmbed->discover($url);
$data = $WP_oEmbed->fetch($provider, $url);
return $data;
}
示例6: orbitnews_fancy_video
/**
* Add Meta Keys for Fancybox Link & Embed for Video Posts
*/
function orbitnews_fancy_video($post_ID)
{
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
if (get_post_status($post_ID) != 'publish') {
return;
}
/* Delete Existing Metakeys */
delete_post_meta($post_ID, '_orn_oembed_body');
delete_post_meta($post_ID, '_orn_embed_link');
// Video Formats
$video_link = trim(get_post_meta($post_ID, "orn_oembed_videos", true));
$video_format = has_post_format('video', $post_ID);
// Video Type Embed
if (!empty($video_link) && $video_format) {
// Get Video Data with wordpress oembed class
require_once ABSPATH . WPINC . '/class-oembed.php';
$oembed = new WP_oEmbed();
$provider = $oembed->discover($video_link);
$data = $oembed->fetch($provider, $video_link);
if (isset($data) && $data != false) {
// Setup variables
$provider = $data->provider_name;
// Video Provider Name
$html_embed = $data->html;
// Video Embed html
$thumb_link = $data->thumbnail_url;
// Video Post Thumbnail
preg_match('/<iframe.*src=\\"(.*)\\".*><\\/iframe>/isU', $html_embed, $url_embed);
$url_embed = $url_embed[1];
// Embed Url
$filename = sanitize_title($data->title);
// Create filename from video title
//Set meta key with feteched video embed html
update_post_meta($post_ID, '_orn_oembed_body', $html_embed);
//Video link and thumbnail for video posts
switch ($provider) {
case 'YouTube':
$url_embed .= '&showinfo=0&iv_load_policy=3&modestbranding=0&nologo=1&vq=large&autoplay=1&ps=docs&wmode=opaque&rel=0';
break;
case 'Vimeo':
$thumb_link = str_replace('_295.jpg', '_640.jpg', $thumb_link);
break;
default:
// do nothing;
break;
}
//end switch
// Add Meta key with embed link
update_post_meta($post_ID, '_orn_embed_link', $url_embed);
if (!has_post_thumbnail($post_ID)) {
//Fetch and Store the Image
$remote_file = wp_remote_get($thumb_link, array('sslverify' => false));
$file_type = wp_remote_retrieve_header($remote_file, 'content-type');
// Get image type
$filename .= '-' . rawurldecode(basename($thumb_link));
// add image file name to file
$local_file_url = wp_upload_bits($filename, '', $remote_file['body']);
// save image in local server
//Attachment options
$attachment = array('post_title' => $filename, 'post_mime_type' => $file_type, 'post_content' => '', 'post_status' => 'inherit', 'ping_status' => 'closed');
// Add the image to your media library and set as featured image
$attach_id = wp_insert_attachment($attachment, $local_file_url['file'], $post_ID);
$attach_data = wp_generate_attachment_metadata($attach_id, $local_file_url['file']);
wp_update_attachment_metadata($attach_id, $attach_data);
set_post_thumbnail($post_ID, $attach_id);
}
// end !has_post_thumbnail()
}
//end isset( $data )
}
//end $video_link empty
}
示例7: uncode_admin_get_oembed
function uncode_admin_get_oembed()
{
$code = $mime = '';
$width = 1;
$height = 1;
$urlEnterd = isset($_REQUEST['urlOembed']) ? urldecode($_REQUEST['urlOembed']) : die;
$onlycode = isset($_REQUEST['onlycode']) ? $_REQUEST['onlycode'] : false;
$urlEnterd = str_replace('https://instagram.com', 'http://instagram.com', $urlEnterd);
$WP_oembed = new WP_oEmbed();
$raw_provider = parse_url($WP_oembed->get_provider($urlEnterd));
if (isset($raw_provider['host'])) {
$host = $raw_provider['host'];
$strip = array("www.", "api.", "embed.");
$bare_host = str_replace($strip, "", $host);
$bare_host = explode('.', $bare_host);
$mime = 'oembed/' . $bare_host[0];
$code = wp_oembed_get($urlEnterd);
preg_match_all('/(width|height)=("[^"]*")/i', $code, $img_attr);
if (isset($img_attr[2][0])) {
$width = preg_replace('/\\D/', '', $img_attr[2][0]);
}
if (isset($img_attr[2][1])) {
$height = preg_replace('/\\D/', '', $img_attr[2][1]);
}
if ($bare_host[0] === 'youtube') {
$parts = parse_url($urlEnterd);
if (isset($parts['query'])) {
parse_str($parts['query'], $query);
$idvideo = $query['v'];
} else {
$idvideo = $parts['path'];
$idvideo = str_replace('/', '', $idvideo);
}
$data = wp_remote_fopen("https://www.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails&id=" . $idvideo . "&key=AIzaSyA9PEtdNGSwzuM8QtaDbZvkcSlkh_UG2HI");
$json = json_decode($data);
$code = '<img src="' . $json->items[0]->snippet->thumbnails->default->url . '" />';
} else {
if ($bare_host[0] === 'vimeo') {
$urlEnterd = preg_replace('/#.*/', '', $urlEnterd);
$vimeo = unserialize(wp_remote_fopen("http://vimeo.com/api/v2/video/" . basename(strtok($urlEnterd, '?')) . ".php"));
$code = '<img src="' . $vimeo[0]['thumbnail_large'] . '" />';
} else {
if ($bare_host[0] === 'flickr') {
$code = preg_replace('/<\\/?a[^>]*>/', '', $code);
}
}
}
} else {
if (preg_match('/(\\.jpg|\\.jpeg|\\.png|\\.bmp)$/i', $urlEnterd) || preg_match('/(\\.jpg?|\\.jpeg?|\\.png?|\\.bmp?)/i', $urlEnterd) || strpos($urlEnterd, 'imgix') !== false) {
$code = '<img src="' . $urlEnterd . '" />';
$mime = 'image/url';
if ($onlycode == 'false') {
if ($getsize = @getimagesize($urlEnterd)) {
if (isset($getsize[0])) {
$width = $getsize[0];
}
if (isset($getsize[1])) {
$height = $getsize[1];
}
} else {
$width = 'indefinit';
$height = 'indefinit';
}
}
} else {
if (strpos(strtolower($urlEnterd), '<iframe') !== false) {
$mime = 'oembed/iframe';
preg_match_all('/(width|height)=("[^"]*")/i', $urlEnterd, $iframe_size);
if (isset($iframe_size[2][0])) {
preg_match("|\\d+|", $iframe_size[2][0], $width);
$width = $width[0];
}
if (isset($iframe_size[2][1])) {
preg_match("|\\d+|", $iframe_size[2][1], $height);
$height = $height[0];
}
} else {
if (strpos(strtolower($urlEnterd), '<svg') !== false) {
$mime = 'oembed/svg';
preg_match_all('/(width|height)=("[^"]*")/i', $urlEnterd, $svg_size);
if (isset($svg_size[2][0])) {
preg_match("|\\d+|", $svg_size[2][0], $width);
$width = $width[0];
}
if (isset($svg_size[2][1])) {
preg_match("|\\d+|", $svg_size[2][1], $height);
$height = $height[0];
}
} else {
$mime = 'oembed/html';
}
}
$code = esc_html($urlEnterd);
}
}
if ($code == '' && $urlEnterd != '') {
$code = 'null';
}
echo json_encode(array('code' => $code, 'mime' => $mime, 'width' => $width, 'height' => $height));
die;
//.........这里部分代码省略.........
示例8: audiotheme_video_sideload_thumbnail
/**
* Import a video thumbnail from an oEmbed endpoint into the media library.
*
* @todo Considering doing video URL comparison rather than oembed thumbnail
* comparison?
*
* @since 1.8.0
*
* @param int $post_id Video post ID.
* @param string $url Video URL.
*/
function audiotheme_video_sideload_thumbnail($post_id, $url)
{
require_once ABSPATH . WPINC . '/class-oembed.php';
$oembed = new \WP_oEmbed();
$provider = $oembed->get_provider($url);
if (!$provider || false === ($data = $oembed->fetch($provider, $url)) || !isset($data->thumbnail_url)) {
return;
}
$current_thumb_id = get_post_thumbnail_id($post_id);
$oembed_thumb_id = get_post_meta($post_id, '_audiotheme_oembed_thumbnail_id', true);
$oembed_thumb_url = get_post_meta($post_id, '_audiotheme_oembed_thumbnail_url', true);
// Re-use the existing oEmbed data instead of making another copy of the thumbnail.
if ($data->thumbnail_url == $oembed_thumb_url && (!$current_thumb_id || $current_thumb_id != $oembed_thumb_id)) {
set_post_thumbnail($post_id, $oembed_thumb_id);
} elseif (!$current_thumb_id || $data->thumbnail_url != $oembed_thumb_url) {
$attachment_id = audiotheme_video_sideload_image($data->thumbnail_url, $post_id);
if (!empty($attachment_id) && !is_wp_error($attachment_id)) {
set_post_thumbnail($post_id, $attachment_id);
// Store the oEmbed thumb data so the same image isn't copied on repeated requests.
update_post_meta($post_id, '_audiotheme_oembed_thumbnail_id', $attachment_id);
update_post_meta($post_id, '_audiotheme_oembed_thumbnail_url', $data->thumbnail_url);
}
}
}
示例9: test_wp_filter_pre_oembed_result_non_existent_post
public function test_wp_filter_pre_oembed_result_non_existent_post()
{
$post_id = self::factory()->post->create();
$permalink = get_permalink($post_id);
$this->go_to($permalink);
$this->assertQueryTrue('is_single', 'is_singular');
add_filter('pre_oembed_result', array($this, '_filter_pre_oembed_result'));
$actual = $this->oembed->get_html('https://example.com/');
remove_filter('pre_oembed_result', array($this, '_filter_pre_oembed_result'));
$this->assertTrue(false !== $this->pre_oembed_result_filtered);
$this->assertFalse($actual);
}
示例10: get_data
public function get_data($url = '', $args = '')
{
if ($url) {
$this->url = $url;
}
if (!$this->url) {
return false;
}
//if it was already fetched
if ($this->data) {
return $this->data;
}
$provider = self::$oembed->get_provider($this->url, $args);
if (!$provider) {
return false;
}
$data = self::$oembed->fetch($provider, $this->url, $args);
if (!$data) {
return false;
}
$this->data = $data;
return $this->data;
}
示例11: __construct
/**
* Constructor
*
* @since 2.9.0
*/
public function __construct()
{
$providers = array('#http://(www\\.)?youtube\\.com/watch.*#i' => array('http://www.youtube.com/oembed', true), '#https://(www\\.)?youtube\\.com/watch.*#i' => array('http://www.youtube.com/oembed?scheme=https', true), '#http://(www\\.)?youtube\\.com/playlist.*#i' => array('http://www.youtube.com/oembed', true), '#https://(www\\.)?youtube\\.com/playlist.*#i' => array('http://www.youtube.com/oembed?scheme=https', true), '#http://youtu\\.be/.*#i' => array('http://www.youtube.com/oembed', true), '#https://youtu\\.be/.*#i' => array('http://www.youtube.com/oembed?scheme=https', true), 'http://blip.tv/*' => array('http://blip.tv/oembed/', false), '#https?://(.+\\.)?vimeo\\.com/.*#i' => array('http://vimeo.com/api/oembed.{format}', true), '#https?://(www\\.)?dailymotion\\.com/.*#i' => array('http://www.dailymotion.com/services/oembed', true), 'http://dai.ly/*' => array('http://www.dailymotion.com/services/oembed', false), '#https?://(www\\.)?flickr\\.com/.*#i' => array('https://www.flickr.com/services/oembed/', true), '#https?://flic\\.kr/.*#i' => array('https://www.flickr.com/services/oembed/', true), '#https?://(.+\\.)?smugmug\\.com/.*#i' => array('http://api.smugmug.com/services/oembed/', true), '#https?://(www\\.)?hulu\\.com/watch/.*#i' => array('http://www.hulu.com/api/oembed.{format}', true), 'http://revision3.com/*' => array('http://revision3.com/api/oembed/', false), 'http://i*.photobucket.com/albums/*' => array('http://photobucket.com/oembed', false), 'http://gi*.photobucket.com/groups/*' => array('http://photobucket.com/oembed', false), '#https?://(www\\.)?scribd\\.com/doc/.*#i' => array('http://www.scribd.com/services/oembed', true), '#https?://wordpress.tv/.*#i' => array('http://wordpress.tv/oembed/', true), '#https?://(.+\\.)?polldaddy\\.com/.*#i' => array('https://polldaddy.com/oembed/', true), '#https?://poll\\.fm/.*#i' => array('https://polldaddy.com/oembed/', true), '#https?://(www\\.)?funnyordie\\.com/videos/.*#i' => array('http://www.funnyordie.com/oembed', true), '#https?://(www\\.)?twitter\\.com/.+?/status(es)?/.*#i' => array('https://api.twitter.com/1/statuses/oembed.{format}', true), '#https?://(www\\.)?soundcloud\\.com/.*#i' => array('http://soundcloud.com/oembed', true), '#https?://(.+?\\.)?slideshare\\.net/.*#i' => array('https://www.slideshare.net/api/oembed/2', true), '#http://instagr(\\.am|am\\.com)/p/.*#i' => array('http://api.instagram.com/oembed', true), '#https?://(www\\.)?rdio\\.com/.*#i' => array('http://www.rdio.com/api/oembed/', true), '#https?://rd\\.io/x/.*#i' => array('http://www.rdio.com/api/oembed/', true), '#https?://(open|play)\\.spotify\\.com/.*#i' => array('https://embed.spotify.com/oembed/', true), '#https?://(.+\\.)?imgur\\.com/.*#i' => array('http://api.imgur.com/oembed', true), '#https?://(www\\.)?meetu(\\.ps|p\\.com)/.*#i' => array('http://api.meetup.com/oembed', true), '#https?://(www\\.)?issuu\\.com/.+/docs/.+#i' => array('http://issuu.com/oembed_wp', true), '#https?://(www\\.)?collegehumor\\.com/video/.*#i' => array('http://www.collegehumor.com/oembed.{format}', true), '#https?://(www\\.)?mixcloud\\.com/.*#i' => array('http://www.mixcloud.com/oembed', true), '#https?://(www\\.|embed\\.)?ted\\.com/talks/.*#i' => array('http://www.ted.com/talks/oembed.{format}', true), '#https?://(www\\.)?(animoto|video214)\\.com/play/.*#i' => array('http://animoto.com/oembeds/create', true));
if (!empty(self::$early_providers['add'])) {
foreach (self::$early_providers['add'] as $format => $data) {
$providers[$format] = $data;
}
}
if (!empty(self::$early_providers['remove'])) {
foreach (self::$early_providers['remove'] as $format) {
unset($providers[$format]);
}
}
self::$early_providers = array();
/**
* Filter the list of oEmbed providers.
*
* Discovery is disabled for users lacking the unfiltered_html capability.
* Only providers in this array will be used for those users.
*
* Supported providers:
*
* | ------------ | -------------------- | ----- | --------- |
* | Provider | Flavor | SSL | Since |
* | ------------ | -------------------- | ----- | --------- |
* | Blip | blip.tv | | 2.9.0 |
* | Dailymotion | dailymotion.com | Yes | 2.9.0 |
* | Flickr | flickr.com | Yes | 2.9.0 |
* | Hulu | hulu.com | Yes | 2.9.0 |
* | Photobucket | photobucket.com | | 2.9.0 |
* | Revision3 | revision3.com | | 2.9.0 |
* | Scribd | scribd.com | Yes | 2.9.0 |
* | Vimeo | vimeo.com | Yes | 2.9.0 |
* | WordPress.tv | wordpress.tv | Yes | 2.9.0 |
* | YouTube | youtube.com/watch | Yes | 2.9.0 |
* | ------------ | -------------------- | ----- | --------- |
* | Funny or Die | funnyordie.com | Yes | 3.0.0 |
* | Polldaddy | polldaddy.com | Yes | 3.0.0 |
* | SmugMug | smugmug.com | Yes | 3.0.0 |
* | YouTube | youtu.be | Yes | 3.0.0 |
* | ------------ | -------------------- | ----- | --------- |
* | Twitter | twitter.com | Yes | 3.4.0 |
* | ------------ | -------------------- | ----- | --------- |
* | Instagram | instagram.com | | 3.5.0 |
* | Instagram | instagr.am | | 3.5.0 |
* | Slideshare | slideshare.net | Yes | 3.5.0 |
* | SoundCloud | soundcloud.com | Yes | 3.5.0 |
* | ------------ | -------------------- | ----- | --------- |
* | Dailymotion | dai.ly | | 3.6.0 |
* | Flickr | flic.kr | Yes | 3.6.0 |
* | Rdio | rdio.com | Yes | 3.6.0 |
* | Rdio | rd.io | Yes | 3.6.0 |
* | Spotify | spotify.com | Yes | 3.6.0 |
* | ------------ | -------------------- | ----- | --------- |
* | Imgur | imgur.com | Yes | 3.9.0 |
* | Meetup.com | meetup.com | Yes | 3.9.0 |
* | Meetup.com | meetu.ps | Yes | 3.9.0 |
* | ------------ | -------------------- | ----- | --------- |
* | Animoto | animoto.com | Yes | 4.0.0 |
* | Animoto | video214.com | Yes | 4.0.0 |
* | CollegeHumor | collegehumor.com | Yes | 4.0.0 |
* | Issuu | issuu.com | Yes | 4.0.0 |
* | Mixcloud | mixcloud.com | Yes | 4.0.0 |
* | Polldaddy | poll.fm | Yes | 4.0.0 |
* | TED | ted.com | Yes | 4.0.0 |
* | YouTube | youtube.com/playlist | Yes | 4.0.0 |
* | ------------ | -------------------- | ----- | --------- |
*
* No longer supported providers:
*
* | ------------ | -------------------- | ----- | --------- | --------- |
* | Provider | Flavor | SSL | Since | Removed |
* | ------------ | -------------------- | ----- | --------- | --------- |
* | Qik | qik.com | Yes | 2.9.0 | 3.9.0 |
* | ------------ | -------------------- | ----- | --------- | --------- |
* | Viddler | viddler.com | Yes | 2.9.0 | 4.0.0 |
* | ------------ | -------------------- | ----- | --------- | --------- |
*
* @see wp_oembed_add_provider()
*
* @since 2.9.0
*
* @param array $providers An array of popular oEmbed providers.
*/
$this->providers = apply_filters('oembed_providers', $providers);
// Fix any embeds that contain new lines in the middle of the HTML which breaks wpautop().
add_filter('oembed_dataparse', array($this, '_strip_newlines'), 10, 3);
}
示例12: __construct
/**
* Constructor
*
* @since 2.9.0
*/
public function __construct()
{
$host = urlencode(home_url());
$providers = array('#http://((m|www)\\.)?youtube\\.com/watch.*#i' => array('http://www.youtube.com/oembed', true), '#https://((m|www)\\.)?youtube\\.com/watch.*#i' => array('http://www.youtube.com/oembed?scheme=https', true), '#http://((m|www)\\.)?youtube\\.com/playlist.*#i' => array('http://www.youtube.com/oembed', true), '#https://((m|www)\\.)?youtube\\.com/playlist.*#i' => array('http://www.youtube.com/oembed?scheme=https', true), '#http://youtu\\.be/.*#i' => array('http://www.youtube.com/oembed', true), '#https://youtu\\.be/.*#i' => array('http://www.youtube.com/oembed?scheme=https', true), '#https?://(.+\\.)?vimeo\\.com/.*#i' => array('http://vimeo.com/api/oembed.{format}', true), '#https?://(www\\.)?dailymotion\\.com/.*#i' => array('https://www.dailymotion.com/services/oembed', true), '#https?://dai.ly/.*#i' => array('https://www.dailymotion.com/services/oembed', true), '#https?://(www\\.)?flickr\\.com/.*#i' => array('https://www.flickr.com/services/oembed/', true), '#https?://flic\\.kr/.*#i' => array('https://www.flickr.com/services/oembed/', true), '#https?://(.+\\.)?smugmug\\.com/.*#i' => array('http://api.smugmug.com/services/oembed/', true), '#https?://(www\\.)?hulu\\.com/watch/.*#i' => array('http://www.hulu.com/api/oembed.{format}', true), 'http://i*.photobucket.com/albums/*' => array('http://api.photobucket.com/oembed', false), 'http://gi*.photobucket.com/groups/*' => array('http://api.photobucket.com/oembed', false), '#https?://(www\\.)?scribd\\.com/doc/.*#i' => array('http://www.scribd.com/services/oembed', true), '#https?://wordpress.tv/.*#i' => array('http://wordpress.tv/oembed/', true), '#https?://(.+\\.)?polldaddy\\.com/.*#i' => array('https://polldaddy.com/oembed/', true), '#https?://poll\\.fm/.*#i' => array('https://polldaddy.com/oembed/', true), '#https?://(www\\.)?funnyordie\\.com/videos/.*#i' => array('http://www.funnyordie.com/oembed', true), '#https?://(www\\.)?twitter\\.com/.+?/status(es)?/.*#i' => array('https://publish.twitter.com/oembed', true), '#https?://(www\\.)?twitter\\.com/.+?/timelines/.*#i' => array('https://publish.twitter.com/oembed', true), '#https?://(www\\.)?twitter\\.com/i/moments/.*#i' => array('https://publish.twitter.com/oembed', true), '#https?://vine.co/v/.*#i' => array('https://vine.co/oembed.{format}', true), '#https?://(www\\.)?soundcloud\\.com/.*#i' => array('http://soundcloud.com/oembed', true), '#https?://(.+?\\.)?slideshare\\.net/.*#i' => array('https://www.slideshare.net/api/oembed/2', true), '#https?://(www\\.)?instagr(\\.am|am\\.com)/p/.*#i' => array('https://api.instagram.com/oembed', true), '#https?://(open|play)\\.spotify\\.com/.*#i' => array('https://embed.spotify.com/oembed/', true), '#https?://(.+\\.)?imgur\\.com/.*#i' => array('http://api.imgur.com/oembed', true), '#https?://(www\\.)?meetu(\\.ps|p\\.com)/.*#i' => array('http://api.meetup.com/oembed', true), '#https?://(www\\.)?issuu\\.com/.+/docs/.+#i' => array('http://issuu.com/oembed_wp', true), '#https?://(www\\.)?collegehumor\\.com/video/.*#i' => array('http://www.collegehumor.com/oembed.{format}', true), '#https?://(www\\.)?mixcloud\\.com/.*#i' => array('http://www.mixcloud.com/oembed', true), '#https?://(www\\.|embed\\.)?ted\\.com/talks/.*#i' => array('http://www.ted.com/talks/oembed.{format}', true), '#https?://(www\\.)?(animoto|video214)\\.com/play/.*#i' => array('https://animoto.com/oembeds/create', true), '#https?://(.+)\\.tumblr\\.com/post/.*#i' => array('https://www.tumblr.com/oembed/1.0', true), '#https?://(www\\.)?kickstarter\\.com/projects/.*#i' => array('https://www.kickstarter.com/services/oembed', true), '#https?://kck\\.st/.*#i' => array('https://www.kickstarter.com/services/oembed', true), '#https?://cloudup\\.com/.*#i' => array('https://cloudup.com/oembed', true), '#https?://(www\\.)?reverbnation\\.com/.*#i' => array('https://www.reverbnation.com/oembed', true), '#https?://videopress.com/v/.*#' => array('https://public-api.wordpress.com/oembed/1.0/?for=' . $host, true), '#https?://(www\\.)?reddit\\.com/r/[^/]+/comments/.*#i' => array('https://www.reddit.com/oembed', true), '#https?://(www\\.)?speakerdeck\\.com/.*#i' => array('https://speakerdeck.com/oembed.{format}', true));
if (!empty(self::$early_providers['add'])) {
foreach (self::$early_providers['add'] as $format => $data) {
$providers[$format] = $data;
}
}
if (!empty(self::$early_providers['remove'])) {
foreach (self::$early_providers['remove'] as $format) {
unset($providers[$format]);
}
}
self::$early_providers = array();
/**
* Filter the list of whitelisted oEmbed providers.
*
* Since WordPress 4.4, oEmbed discovery is enabled for all users and allows embedding of sanitized
* iframes. The providers in this list are whitelisted, meaning they are trusted and allowed to
* embed any content, such as iframes, videos, JavaScript, and arbitrary HTML.
*
* Supported providers:
*
* | Provider | Flavor | HTTPS | Since |
* | ------------ | -------------------- | :---: | --------- |
* | Dailymotion | dailymotion.com | Yes | 2.9.0 |
* | Flickr | flickr.com | Yes | 2.9.0 |
* | Hulu | hulu.com | Yes | 2.9.0 |
* | Photobucket | photobucket.com | No | 2.9.0 |
* | Scribd | scribd.com | Yes | 2.9.0 |
* | Vimeo | vimeo.com | Yes | 2.9.0 |
* | WordPress.tv | wordpress.tv | Yes | 2.9.0 |
* | YouTube | youtube.com/watch | Yes | 2.9.0 |
* | Funny or Die | funnyordie.com | Yes | 3.0.0 |
* | Polldaddy | polldaddy.com | Yes | 3.0.0 |
* | SmugMug | smugmug.com | Yes | 3.0.0 |
* | YouTube | youtu.be | Yes | 3.0.0 |
* | Twitter | twitter.com | Yes | 3.4.0 |
* | Instagram | instagram.com | Yes | 3.5.0 |
* | Instagram | instagr.am | Yes | 3.5.0 |
* | Slideshare | slideshare.net | Yes | 3.5.0 |
* | SoundCloud | soundcloud.com | Yes | 3.5.0 |
* | Dailymotion | dai.ly | Yes | 3.6.0 |
* | Flickr | flic.kr | Yes | 3.6.0 |
* | Spotify | spotify.com | Yes | 3.6.0 |
* | Imgur | imgur.com | Yes | 3.9.0 |
* | Meetup.com | meetup.com | Yes | 3.9.0 |
* | Meetup.com | meetu.ps | Yes | 3.9.0 |
* | Animoto | animoto.com | Yes | 4.0.0 |
* | Animoto | video214.com | Yes | 4.0.0 |
* | CollegeHumor | collegehumor.com | Yes | 4.0.0 |
* | Issuu | issuu.com | Yes | 4.0.0 |
* | Mixcloud | mixcloud.com | Yes | 4.0.0 |
* | Polldaddy | poll.fm | Yes | 4.0.0 |
* | TED | ted.com | Yes | 4.0.0 |
* | YouTube | youtube.com/playlist | Yes | 4.0.0 |
* | Vine | vine.co | Yes | 4.1.0 |
* | Tumblr | tumblr.com | Yes | 4.2.0 |
* | Kickstarter | kickstarter.com | Yes | 4.2.0 |
* | Kickstarter | kck.st | Yes | 4.2.0 |
* | Cloudup | cloudup.com | Yes | 4.4.0 |
* | ReverbNation | reverbnation.com | Yes | 4.4.0 |
* | VideoPress | videopress.com | Yes | 4.4.0 |
* | Reddit | reddit.com | Yes | 4.4.0 |
* | Speaker Deck | speakerdeck.com | Yes | 4.4.0 |
*
* No longer supported providers:
*
* | Provider | Flavor | HTTPS | Since | Removed |
* | ------------ | -------------------- | :---: | --------- | --------- |
* | Qik | qik.com | Yes | 2.9.0 | 3.9.0 |
* | Viddler | viddler.com | Yes | 2.9.0 | 4.0.0 |
* | Revision3 | revision3.com | No | 2.9.0 | 4.2.0 |
* | Blip | blip.tv | No | 2.9.0 | 4.4.0 |
* | Rdio | rdio.com | Yes | 3.6.0 | 4.4.1 |
* | Rdio | rd.io | Yes | 3.6.0 | 4.4.1 |
*
* @see wp_oembed_add_provider()
*
* @since 2.9.0
*
* @param array $providers An array of popular oEmbed providers.
*/
$this->providers = apply_filters('oembed_providers', $providers);
// Fix any embeds that contain new lines in the middle of the HTML which breaks wpautop().
add_filter('oembed_dataparse', array($this, '_strip_newlines'), 10, 3);
}