本記事は広告が含まれる場合があります WordPress

【WordPress文字列一括置換】画像URLをhttpsに変更する方法

WordPressでSSL化したときに警告される画像URLやそのほかの過去の情報を一括で置換したいケースがよくあります。
 

WordPress上の文字列・URLを置換する方法はいくつかありますが、今回は「Database Search and Replace Script in PHP」をつかって、文字列を一括置換する方法を紹介します。
 

WordPressをSSL化したんですけど、画像のURLがhttp://のままになっていて、!マークが表示されて完全にSSL化できません。

 

不完全なSSLの場合、!マークが表示される。Mixed Contentが主な原因
 
不完全なSSLの場合、!マークをクリックした時に表示される警告文
 

SSLに変換した際に、不完全なSSL通信の場合表示されています。(※)大体のケースが画像のURLがhttp://〜から始まっていることが原因でこのようなMixed Contetsと言う警告が表示されます。
 

既に構築済みのWordPressを途中でSSL化した場合、これまで作成していたページの画像のURLがhttp://通信のままになっています。今回はhttpをhttpsに一括で文字列置換する方法をご紹介しますね。

 

 

(注意)必ずバックアップを取った上で自己責任で作業してください

注意ツールを使ったデータベースの値の変更方法を紹介していますが、間違った操作をすると最悪WordPressが壊れてしまう場合もあります。

本記事は特定の環境下での手順を示した物であり、ご利用の環境によってはこの他にも手順が必要だったりする場合があります。作業は必ずバックアップを取った上で自己責任の元作業を実施してください。

 
 

WordPress文字列一括置換方法の概要

まず最初に、今回のWordPress文字列一括置換方法の概要を説明します。
 

WordPressでは、MySQLというデータベースに投稿情報や設定情報が保存されています。
 
ワードプレスの構成
 

画像のURLもデータベース上に登録されており、書き換える場合はデータベース上のURLを書き換える必要があります。
 

MySQL上に登録された画像のURL
MySQL情に登録された画像のURL
 

データベースに登録された文字列情報を書き換える方法としては、「データベースをSQL文で直接書き換える方法」や「Search Regexなどのプラグインで一括置換する方法」のほか、「今回紹介するDatabase Search and Replace Script in PHP」を使って一括で書き換える方法があります。
 

このうち、データベースをSQL文で直接書き換える方法は推奨されておらず、また、「Search Regexなどのプラグインで一括置換する方法」についてもContact Form 7などの設定内容が消えてしまう場合があります。
 

私も以前Search Regexなどのプラグインで一括置換をしていましたが、古いプラグインであることと、Contact Form 7の問い合わせフォームの設定内容が全て消えてしまったケースがありました。

 

参考)WordPressをhttps化したら、Contact Form 7 の設定が消えてしまった⁉
 

そこで今回は、URLを置換する方法として「Database Search and Replace Script in PHP」をつかって、文字列を一括置換する方法を紹介します。
 

このツールは、WordPress Codexでも紹介されているので、実績のあるツールです。

 

あなたのドメイン名またはURLを変更するとき -例: http://example.com/blog から http://example.com 、あるいは http://example.com から http://example.net - 更に心配があります。ファイルやデータベースは移動できます。しかしながら以前のドメイン名や場所への参照がデータベース上に残るでしょう。そして、それがリンクやテーマ表示の問題を引き起こすことがあります。

あなたがURLを変更するためにデータベース全体で検索と置換を実行すると、データシリアライゼーション(変換)で問題を引き起こすことがあります。テーマやウィジェットの中にはURLの長さを示す値を含むものがあるためです。これが変わると壊れます。このようなシリアライゼーション問題を解決する2つの選択肢があります。

  1. wp_posts テーブル上での検索と置換だけ実行。
  2. 全データを安全に変更するため、 WordPressデータベース用検索と置換スクリプト を使用(開発者の方は、この選択肢を使用しましょう。下記の15ステップの手続きとは対照的に1ステップの処理です)。

(※)WordPress の引越し | WordPress Codex 日本語版より引用

 
 

Search-Replace-DB-Masterをサーバーに設置する

今回は「Database Search and Replace Script in PHP」という専用の書き換えツールを利用します。
 

まずは、下記サイトにアクセスしてください。
Database Search and Replace Script in PHP
 

Database Search and Replace Script in PHP トップページ
 

ユーザー情報を登録するフォームがありますので入力して送信します。
Search Replace DB でユーザー登録をする
 

入力したメールアドレスにダウンロードリンクがありますので、クリックしてダウンロードしてください。
Search-Replace-DB-Master ダウンロードリンクが載っているメール
 

ダウンロードファイル(ZIP)を解凍します。「Search-Replace-DB-Master」というフォルダができます。
Database Search and Replace Script in PHP を解凍します
 

解凍したフォルダ「Search-Replace-DB-master」をFTPを利用して、サーバー内のWordPressインストール先(※)に格納します。
Database Search and Replace Script in PHP をFTPでサーバーにアップロードします
 

(※)エックスサーバーで独自ドメイン直下にWordPressをインストールした場合であれば「ドメイン名/public_html」が相当します。ご自身のレンタルサーバーの環境に合わせてください。
 

合わせて読みたい記事

FTPを使ったことがない方は「無料FTPツール FileZilla の使い方 Mac・Windows対応」を合わせてご参照ください。

 

(注意)設定後は必ず削除しましょう

注意なお、本番のインターネット環境では、第三者がhttp://実際のドメイン/xxxx/Search-Replace-DB-masterにアクセスできると、簡単にデータベース書き換えられてハッキングできてしまいます。

最終的に今回ご紹介する手順が完了したら必ず削除するようにしておきましょう。

 

Search-Replace-DB-Masterで文字列を一括置換する

次に、Search-Replace-DB-MasterでURL文字列を一括置換していきます。
 

「https://ドメイン名(WordPressインストールURL)/Search-Replace-DB-Master」にアクセスします。下記のようなツールが表示されます。
ツールのページが表示されます。
 

(補足)MySQL データベース接続情報があっていない場合

(※)通常、WordPressで利用しているMySQLデータベースの接続情報が自動で入力されています。
 

もし入力されていない場合・データベース接続エラーが出ていて、「Dry Run」や「live Run」がグレーアウトしている場合は今一度接続情報を入力Update Detailsを押して試してみてください。
データベース接続エラーが起きた際は接続情報を確認してupdatedetailsを押下
 

なお、データベースの接続情報は、ワードプレスインストール先/wp-config.phpで確認することができます。
WordPress wp-config.php
 
WordPress wp-config.phpに記述されているMySQL情報

 

ここで、変更したい(変更前の)文字列と変更後の文字列を入力します。「dry run」ボタンで実行前の確認ができます。
dry runボタンで実行前の確認ができます
 

変更対象のテーブル名とデータ数が表示されます。
変更対象のテーブル名とデータ数が表示されます
 

(補足)リンクをクリックすると、実際にどこを書き換えるのかを確認することができます。変更する内容が正しいのか正しくないのかあとで目視でチェックしましょう。閉じる場合は「右上の×マーク」で閉じることができます。
変更前の文字列と変更後の文字列を確認することができます
 

確認が完了したら、「live run」ボタンを押下してツールを実行します。
live run ボタンを押下してツールを実行します
 

確認ダイヤログが表示されるのでOKボタンを押下します。
確認ダイヤログが表示されるのでOKボタンを押下します
 

文字列データが一括置換(アップデート)されました。
データがアップデートされたことを確認します
 

このツールはデータベースの中身を書き換えるツールなので削除しないと簡単にサイトを乗っ取ることができます。必ず本ツールを削除する必要があります。
 

「delete」ボタンを押下してツールを削除します。
deleteボタンを押下してツールを削除します
 

再度、「https://ドメイン名(WordPressインストールURL)/Search-Replace-DB-Master」にアクセスして、アクセスできなくなったことを確認しましょう。
ツールにアクセスできないことを確認します
 

最後に、ブラウザでMixed Contentのエラーがなくなったこと・アドレスバーに鍵マークが表示されていることを確認して完了です。
Mixed Contentのエラーがなくなったことを確認して完了です
 

なお、今回はWordPressで利用しているMySQLデータベースの文字列を一括置換する方法です。WordPressテーマファイル(phpやcss、js)などに直接http://〜と記載しているものは変更されませんので、テーマファイルに直接書き込んでいる場合は、別途手動でhttpsに修正して下さい。
 
 

以上で完了です。

まとめ

まとめです。今回は「Database Search and Replace Script in PHP」をつかって、文字列を一括置換する方法を紹介しました。
 

おかげさまでWordPressのSSL化がちゃんとできるようになりました。

 

既に構築済みのWordPressを途中でSSL化した場合、これまで作成していたページの画像のURLがhttp://通信のままになっています。今回の方法でhttpをhttpsに一括で文字列置換することができます。

 

ただし、今回の手順で間違った操作をすると最悪WordPressが壊れてしまう場合もあります。
 
本記事は特定の環境下での手順を示したものであり、ご利用の環境によってはこの他にも手順が必要だったりする場合があります。作業は必ずバックアップを取った上で自己責任の元作業を実施してください。
 

今回は以上になります。最後までご覧いただきありがとうございましたs。
 

合わせて読みたい記事

WordPressの基本的な使い方を「【総まとめ版】WordPress(ワードプレス)の使い方を徹底解説」にまとめました。WordPressの使い方をしっかり覚えたい方はあわせてご参考ください。

【2020年版WordPress(ワードプレス)の使い方総まとめ】

 

「業者に任せたけど、更新ができない」「本で独学は時間がかかりすぎる・・」そんなお悩みの方も多いのではないでしょうか。

個別指導形式のスクールでは、自分の知りたいことをピンポイントで学習・達成でき、自分で更新もできるというメリットもあります。

教室の無料事前相談もしておりますので、まずはお気軽にご登録ください。

詳細はこちら

YouTubeチャンネル開設しました!

WEBST8 YouTube Channel 開設
最大月間50万PVの当ブログをベースに、Youtube動画配信にてWordPress、ホームページ作成、ブログのことについてお役立ち情報を随時配信していきます。

ご興味ある方はぜひチャンネル登録をしていただけますと幸いです。


 

【WordPress対応】自分でホームページ・ブログを作成したいWebスクールWEBST8
WordPress 自分でホームページ・ブログを作成したい個人事業主のためのWebスクール・教室 ウェブストエイト

検索して記事を見つける

探したいキーワードを入力・検索して記事を見つけたい方はこちら

-WordPress
-