私はYouTubeのビデオから私のホームページに多くの親指を表示します。私はすぐに動作するYouTubeのURLから親指をつかむために、この関数を使用していましたが、youtu.be/JSHDLSKLのような短縮形式のURLでは機能しません。oembedを正しく使ってyoutubeから親指を引っ張る方法
function get_youtube_screen_link($url = '', $type = 'default', $echo = true) {
if(empty($url))
return false;
if(!isset($type))
$type = '';
$url = esc_url($url);
preg_match("|[\\?&]v=([^&#]*)|",$url,$vid_id);
if(!isset($vid_id[1]))
return false;
$img_server_num = 'i'. rand(1,4);
switch($type) {
case 'large':
$img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/0.jpg";
break;
case 'first':
// Thumbnail of the first frame
$img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/1.jpg";
break;
case 'small':
// Thumbnail of a later frame(i'm not sure how they determine this)
$img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/2.jpg";
break;
case 'default':
case '':
default:
$img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/default.jpg";
break;
}
if($echo)
echo $img_link;
else
return $img_link;
}
だから私はユーチューブのURLのすべてのバリエーションのために働く代わりに親指を取得するためのoEmbedを使用しようとしましたが、それは120ピクセル/ 90PXにそれを得るためにトリミングの多くの原因となる480PX/360px親指を取得私はそれらを表示するために使用するサイズ。もう一つの問題は、私のページスピードが4秒増えることでした。私はそれを実装する方法に問題があると推測しています。親指をループ内で呼び出す方法は次のとおりです。
<?php
require_once(ABSPATH.'wp-includes/class-oembed.php');
$oembed= new WP_oEmbed;
$name = get_post_meta($post->ID,'video_code',true);
$url = $name;
//As noted in the comments below, you can auto-detect the video provider with the following
$provider = $oembed->discover($name);
//$provider = 'http://www.youtube.com/oembed';
$video = $oembed->fetch($provider, $url, array('width' => 300, 'height' => 175));
$thumb = $video->thumbnail_url; if ($thumb) { ?>
<img src="<?php echo $thumb; ?>" width="120px" height="90px" />
<?php } ?>
効率を最大化するにはどうすればよいですか?
idを取得するためにoembedを使用し、最初の関数の他の部分 - または何が問題なのですか? – hakre
oembedを使って標準のURLを取得し、最初の関数を使用して親指を取得することを意味しますか?私の問題は、人々があなたのサイトにビデオを投稿するyoutue URLを提出することです。一番上の関数はurlのyoutu.beバージョンの親指を取得しません。 Oembedを使用して親指を取得すると、480/360バージョンが得られます。これは、私にとって不必要な切り取りを引き起こします。そして、それはなぜ私が理解することができない負荷時間を追加します。 –
[Youtube API - 動画IDを抽出](http://stackoverflow.com/questions/6556559/youtube-api-extract-video-id/6556662#6556662) – hakre