Youtubeのリンクをカスタムフィールドで張り付けるとき

カスタムフィールドでURLフィールドを作った後の話をします。

URLだけで埋め込み

wp_oembed_get関数ならURLだけで埋め込みできる

https://lib.ridesign.jp/lib_wp/youtube/

これを使うとiframeタグで出力してくれる

<?php  // ACFの場合
$変数 = get_field('フィールド名');
if($変数){
  echo $変数 = wp_oembed_get($変数);
}
?>

Youtubeのサムネイルを取得する

YOUTUBE動画のサムネイルは、URLを指定するだけで取得することができます。

取得したい動画IDさえわかれば、様々なサイズのサムネイルが取得可能です。

https://takayakondo.com/youtube-thumbnail-acquisition/

動画IDさえ取得できればサムネイルも取得できる

じゃあ動画IDはどう取得するか↓

【PHP】YouTubeのいろいろなURLから動画のIDを取り出す正規表現

https://cravelweb.com/webdesign/wp-customize/post-3811
<?php
preg_match('/(http(s|):|)\/\/(www\.|)yout(.*?)\/(embed\/|watch.*?v=|)([a-z_A-Z0-9\-]{11})/i', $URLが入った変数, $results);
echo $results[6]; // var_dumpでもOK.色々出てくるけど… ここで出さなくても良き確認用なり.
?>

これで取得できたはずなので、出力したい場所にimgタグで埋め込む

<?php /* 小さいサムネイル w120 x h90 */ ?>
<img src="https://img.youtube.com/vi/<?php echo $results[6] ?>/default.jpg" />
<?php /* 中くらいサムネイル w320 x h180 */ ?>
<img src="https://img.youtube.com/vi/<?php echo $results[6] ?>/mqdefault.jpg" />
<?php /* 大きいサムネイル w480 x h360 */ ?>
<img src="https://img.youtube.com/vi/<?php echo $results[6] ?>/hqdefault.jpg" />
<?php /* 特大サムネイル w640 x h480 */ ?>
<img src="https://img.youtube.com/vi/<?php echo $results[6] ?>/sddefault.jpg" />
<?php /* 超特大サムネイル w1280 x h720 */ ?>
<img src="https://img.youtube.com/vi/<?php echo $results[6] ?>/maxresdefault.jpg" />

YouTube 関連動画の設定

現在(2021/12/13時点)で関連動画を非表示にする設定がないので、同一のチャンネルの関連動画を表示するようにする。

<iframe width="" height="" src="https://www.youtube.com/embed/<?php echo esc_html($動画ID); ?>?rel=0" ~></iframe>
  • X