> 記事 > WordPress インターネット ウェブ制作 パソコン プログラミング マメ知識 画像 > WordPressで管理画面をSSL化しているとアップロード画像が表示されない場合の対処方法

WordPressで管理画面をSSL化しているとアップロード画像が表示されない場合の対処方法

2017.01.07.(Sat)Masahiro Natori By.Masahiro Natori

こんにちは、masaです。

パースは真夏のはずなのですが、涼しい日が続いています。
40度近い日が3日ほど続いてヘバっていたので涼しくて助かるのですが、なんか調子が狂う感じもします。

summer-in-perth
パースの夏は、カラっとしていてすごしやすいのですが、それでも40度を越えるとなかなかしんどいです。

Sponsored Link

WordPressのメディアライブラリで画像が表示されない


お客様からWordPressのことで相談がありました。メディアライブラリに画像をアップロードしたのだが、一部の画像は表示されるのに、一部の画像が表示されないのはなぜか、という話でした。実際に見てみると、このような感じになっていました。ちなみにWordPressのバージョンは4.7でした。

wordpress_thumnail_notshown
本来サムネールが表示される部分に何か縦棒が1本表示されている感じで本来表示されるべき画像が出ていません。「要素を調査」で確認してみると大量のエラーが出ていました。エラーを確認してみると、原因としては、管理画面を https にしているのに、http で画像を表示しようとしているからエラーということのようです。

http-https-errors
こちらのサイトは管理画面をhttps で運用しているのですが、ソースを確認してみると確かにsrcsetの部分が https になっていないところがありました。どうもWordPressの対応漏れのような感じがします。

not-https-in-srcset
たぶんこちらが問題報告と対応状況。このsrcset自体はWordPress4.4から加わったので、そのころからずっと問題になっているのにるまだクローズされていない。
#34109 (Incorrect URL scheme for media in the admin area when using administration over HTTPS) – WordPress Trac

ファイルのアドレス自体は問題ないのですが、secset= の部分が https になっていないのが問題のようです。ちなみに、srcset という部分は、ひとつの画像ファイルについて複数のサイズ情報を登録しておくと、ブラウザのほうで適切なサイズの画像を使用してくれるという便利なものです。ただし、今回のように SSL化しているordPressの管理画面では、ちょっと問題となってしまいます。

対応策の調査


このような状況で困っている人が他にいないかをネットで探してみたところ、いくつかの関連する問題と対応方法が出てきました。

WordPress をSSL運用すると管理画面でアップロードした画像が見れない – Qiita

こちらは、srcset の部分ではないみたい。2014年の記事なのでさすがに改善済みのようす。

wordpress4.4の画像にsrcsetが埋め込まれるのを削除する | joppot

こちらは、srcset そのものを除去してしまうという方法。これを入れると、srcset がソースの中に入らない状態になり、すべてアップロードした画像をリサイズして表示するような形になります。アップロードした画像自体は https で表示されているので、こちらでも見た目上問題はなくなります。ただし、srcset がなくなってしまうことで、せっかくサイズ違いの画像ファイルを作成してあるのに最適な画像を選ぶ部分が使えない、つまり、大きい画像をアップロードした場合、そのまま大きな画像を使われてしまうということになるので、もったいないような気もします。

ちなみにWordPressでは、写真をアップロードすると自動的に小さくしたサイズのものが作成されるようになっています。実際にファイルをアップロードした後にFTPなどで確認してみると、このように複数のファイルが作成されていることがわかります。

thumnail-files-made-by-wordpress
どのようなサイズの画像を作成するかはSettings → Media で設定できるようになっています。

wordpress_media-setting

そして、解決法の発見


そして、理想的な解決方法として、このようなものを見つけました。この問題をプラグインで解決してくれるというものです。やはり同じ問題で困っている人がいるんですね。

Force HTTPS srcset — WordPress Plugins

WordPress 4.4 からレスポンシブ画像が搭載されましたが、その srcset 内の URL が
https でアクセスしても https ではなく http になっている環境が多々あります。

このプラグインは https からアクセスされた際、または常に srcset のURL を
https に強制します (設定で選択できます) 。

~上記プラグインのサイトから転記~


まさにコレです。このプラグインを入れることで、srcset が http なのを https に
変えてくれそうです。

早速インストールしてみました。

force-https-srcset
そして、メディアライブラリを開いてみると・・

after-force-https-srcset
ちゃんと画像が表示されるようになりました!
上記で確認したimage-32.jpg 部分のソースを確認してみたところ

after-force-https-srcset-image-source
予定通り srcset 部分が http から https に変わっていることが確認できます。
これにより、エラーも出なくなりました。

まとめ


管理画面をSSL化している時のメディアライブラリをリスト表示した場合、画像が出ない場合があるのは、WordPressのバグのようです。WordPressといえども万能ではなくまだまだバグもあるみたいです。「おかしい」と思うときには調べてみると未対応のバグだったり、今回のようにパッチのようにリリースされているプラグインが見つかったりします。現時点では、Force HTTPS srcset というプラグインをインストールするのが、一番手軽で早い解決法のようです。

同じような問題で悩んでいる方の手助けになれば幸いです。



Masahiro Natori

Masahiro Natori
こんにちはMasaです。39歳の時に16年勤めた会社を辞め、2013年4月に家族で日本からパースに引っ越してきました。2013年6月よりGITSに勤務。2014年1月にGITSのサポートでProgrammerとして457ビザを取得。 趣味は音楽を聴くことと、部屋のレイアウトを変えること、ドライブすること。
  • facebook
  • twitter