こんにちは!サブです!WEBサイト作ったりもしてます。
とあるちょっとしたきっかけからクライアントのWEBサイトの常時SSL化をすることになり、チェック段階としていろいろやってたらとある壁にぶち当たりました。あーあ事前にチェックしておいて良かったー!(ブルゾン風)
最初どこ調べても原因がわからなかくて困ったけど、最終的に解決することができたので記事に残しておきます。ぜひ参考にしてみてください。
テーマ入りのワードプレスをSSL化時のトラブル
サイトの状態です。
・ワードプレスサイト
・有料テーマ導入
・サイト設定時にSSL導入
・画像URLの「https」へのリダイレクトも設定済
という感じで、起きたトラブルがアップロードした画像URLの返り値が強制的にhttpに書き換わるというものでした。
当然画像URLも「http」→「https」へリダイレクト処理をしているので、仮にhttpと記載されていてもhttpsとして認識されるはずなのになぜか認識されない。試しに直接記述してみると認識される….。といった状況。
直書きした場合は問題ないけど、テーマの機能を使った画像アップロードの場合はhttpになります。
原因はテーマに設定されている画像アップローダー
原因はこいつでした。(※かなりマニアックな話ですいません!)
ワードプレスのテーマはオリジナル制作ではないので、テーマ作った人がアップローダーを設定してくれていたりするのですが、どうやら旧式のアップローダーが実装されていたらしく、ここが原因で返り値が「http」になっていたようです。
画像URLもリダイレクトしていたので内部的に「http」→「https」→「http」という感じで戻されていたみたいです。なので解決方法としては旧式のアップローダーの記述を書き換えてあげればOKです。
PHPファイルの編集
おそらくファンクションフォルダの中に入っていると思いますが、アップローダーのファイルをいじってあげればOKです。
「<wp_upload_dir()> 」という関数でアップローダーが作られている場合は返り値が「http」になるので、テーマ入れててSSL化する時はここをいじってあげれば大丈夫なようです。
ただし「テーマによって場所や記述が変わります」
最近リリースされたテーマとかなら対応していると思いますが、それでも旧式のアップローダーを使っていることが多いので、SSL化する時にはちゃんとhttpsの値で返されるかのチェックは必須です。
別の対応策としてはアップロード後に直編集
とはいってもテーマによっては編集権限とかがない場合もあるので、その時はアップローダーからアップロードした画像部分の記述を手動で変更するといった方法でも可能です。
ただしファイルを直修正した場合はその後アップローダーからアップした場合、それが反映されないのでできれば上のアップローダー部分の記述を変更してあげた方がいいでしょう。
きっとワードプレスでテーマ入れててSSL化しよう!って人で、マイナーなテーマ使っている場合は発生することがあります。ぜひ参考になればです。
最後まで読んでいただきありがとうございました。