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);
コメント