WordPressをHTTPS化(SSL化)したら、過去に投稿したYoutubeの埋め込み動画が再生されなくなった!そんな時の対応処理

wpXサーバーがwordpressの常時SSL通信に対応した!ということで、先日当ブログも早速HTTPS化しました。

wpXサーバーがwordpressの常時SSL通信に対応!早速サイトをHTTPS化してみました!

これで一安心!と思っていたんですが、過去に投稿した記事でYoutubeの埋め込み動画がうまく表示されていないというご指摘を受けました。

確かに、本来ならYoutubeの動画が埋め込まれているはずの領域が真っ白です!
20160829233600

原因は単純で、過去に埋め込んだ動画がhttp形式のURLだったので、HTTPSで提供されているページ内にHTTPで提供されているコンテンツがあるという状態になり、ブラウザによってはコンテンツを表示できていなかったようです。
ブラウザによってはコンテンツは表示されるけど警告がでるというパターンもあるようです。

Youtubeは2013年くらいから段階的にHTTPS化を進めており、現在はほぼ全ての動画がHTTPSになっています。
当ブログではYoutubeはURLを貼り付けるだけの「oEmbed」というWordpressの機能を利用して貼り付けているので、2013年〜2014年くらいの記事には「http://www.youtube.com/XXXX」というURLで記述されていました。
ちなみに、なんでそんな古い記事にアクセスがあったのかというと、高畑淳子さんの例の会見が話題になるなかで、「あ、これって『少年は残酷な弓を射る』みたいだねー」という話になり、当ブログの『少年は残酷な弓を射る』の感想記事にアクセスが来ていたようです。なるほど。

というわけで、サクっと対応します。
過去記事をすべて編集するのはめんどくさいので、YoutubeのURLをiframeの埋め込みに展開する処理にフックしてURLを置換します。

「URLに”youtube”の文字列があり、そのプロトコルがhttpだった場合、プロトコルをhttpsに変換する」みたいな処理を書くのがスマートなんでしょうけど、そんな大層な処理でもないので、「http://www.youtube.com」を「https://www.youtube.com」に置換するというだいぶ雑な処理で対応しました。
アルゴリズム的にあんまり知性を感じませんが、やりたいことをシンプルにやる方が、今回の処理の規模には合っているはず!

というわけで、WordpressをHTTPS化(SSL化)したら、過去に投稿したYoutubeの埋め込み動画が再生されなくなった!そんな時の対応処理でした!

Commentsこの記事についたコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です