Console に Mixed Content の警告が表示
とあるお仕事でWordPressを常時SSL化を依頼されて設定したのですが、ブログの本文に結構な数で、httpプロトコルからのパスを設定している(主にimg要素)ようで、Mixed Contentの警告がConsole上に表示されてしまっていました。(Mixed Contentとは? by Google)
1件1件チェックしていくのは大変だし対応漏れもでてきそうなので、SQLで一気に変換しちゃおうと思い、ちょっと調べてみることに。
MySQLのREPLACE構文
現在ある記事に対して、本文中のhttp://~をhttps://~に置換するのにREPLACE構文を用いてSQL文を考えました。以下の通り。
UPDATE wp_posts SET post_content=REPLACE(post_content, 'http://', 'https://')
これをphpMyAdminなどで、直接SQLを実行してみました。(バックアップをお忘れなく)
実行すると……できた!\(^o^)/
少々ビビりながら実行しましたが、あっさりできました。常時SSL化対応時にはマストな作業ですね。
注意
上記例では、プロトコルのみで変換しましたけど、実際はコンテンツの中に自ドメイン以外も混ざっている可能性があるので、僕はドメインまで指定して変換しました。