WordPressでYouTubeの動画再生後に関連動画を表示させない、その3

この記事は約3分で読めます。

WordPressにYouTubeの動画URLをコピペしたところ、再生後に関連動画が表示されてしまうので、なんとかしたいと思い、「rel=0」を付加すればいいと、努力してきた。

でも、それは無駄でした。いくら投稿記事のURLをいじっても、実際の再生時には反映されない。なぜ、なぜ、なぜ、、、と思っていたところ、この記事を見つけてあっさり解決。

テーマのfunctions.phpを編集すれば良いのです。具体的には、以下を追記しました。

// Customize YouTube oEmbed Code
function custom_youtube_oembed($code){
  if(strpos($code, 'youtu.be') !== false || strpos($code, 'youtube.com') !== false){
    $html = preg_replace("@src=(['\"])?([^'\">\s]*)@", "src=$1$2&showinfo=0&rel=0", $code);
    $html = preg_replace('/ width="\d+"/', '', $html);
    $html = preg_replace('/ height="\d+"/', '', $html);
    $html = '<div class="youtube">' . $html . '</div>';

    return $html;
  }
  return $code;
}

add_filter('embed_handler_html', 'custom_youtube_oembed');
add_filter('embed_oembed_html', 'custom_youtube_oembed');

動画のタイトルを非表示する「showinfo=0」も設定してます。

2016/08/06追記

スタイルシートの設定もしてみました。

.youtube {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  max-width: 100%;
}
.youtube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

2017/02/05追記

function.phpに追加するコードですが、今はテーマにSimplicityを使っていて、子テーマを編集した場合、2行はコメントアウトしたほうがよいみたいです。

//    $html = preg_replace('/ width="\d+"/', '', $html);
//    $html = preg_replace('/ height="\d+"/', '', $html);

 

個人
スポンサーリンク
スポンサーリンク
gokurakuをフォローする
ごくろぐ

コメント