WordPressのDB内文字を完全に置換える方法!ドメイン変更、リンク先変更に「Search Replace DB」

WordPressの運用中、ドメインを変更したり、今までに書きためた投稿のリンク先を一括変更したいなどの場合が出てきます。単純にコンテンツ内部の文字列変更などであれば、下記の「 Search Regex 」プラグインを使用する方が簡単かもしれない。

ドメインそのものを変更したり、ドメインをhttps化してリンク先もすべてhttps化したり(画像リンク先など)、あるいは外部サイトのドメインが変更になり、それに関する投稿や画像リンクを一括して変更する場合は、この後に紹介する「Search Replace DB」を使用すると「完全置換え」ができます。

前提

完全にドメイン変更の場合は、
1.phpAdminを使用して、旧サイトのDBをエクスポート、新サイトにインポート
2.FTPを使用して、旧サイトのすべてのファイルをダウンロードします。
3.wp-config.phpの内容で、データベース名、ユーザー名、パスワードを新サイトのものに変更します。また、必要であれば、.htaccessの内容でドメイン名を変更します。
4.3の変更を実施したすべてのファイルをFTPでアップロードしておきます。

Search Replace DBのダウンロード

Search Replace DBをダウンロードします。公式サイト では、ページの真ん中あたりに下記の様な記述が有りますので、赤文字をクリックしてダウンロードします。

公式サイトのダウンロードリンク表示
GitHubでのダウンロード

公式サイトでない場合は、オンラインのツールが集まった「GitHub」の該当サイトでもダウンロード可能です(どちらでも同じ)。

ダウンロードを実施したら、わかりやすい場所にファイルを展開します。

また、展開後に展開されたフォルダの名称(Search-Replace-DB-master)を「repdb」などわかりやすい(入力しやすい)名前に変更しておきます。

 

Search Replace DBのアップロード

コンテンツ内容を変更したいWordPressのwp-config.phpがあるフォルダに、名前を変更したフォルダ毎FTPでアップロードします。

次の図は、アップロードした後の状態を表示しています。

 

Search Replace DBの起動と文字列変更

http://ドメイン名(必要に応じてフォルダ名)/repdb/
というようにアップロードした位置を指定してSearch Replace DBを起動します。

起動した画面で、置換え前文字列と置換え後文字列を入力します。

database部分には、wp-configで指定してあるWordPressのデータベース情報が入ります。
search/replace部分に「置換えたいもとの文字列」と「置換え後の文字列」を正しく注意して入力します。

テストランの実施(dry Run)

[dry Run]をクリックして、変更対象の確認を行います。

[Live run]の実施

その後 [Live run]をクリックして、実際の変更を行います。

これで、置き換えの作業は完全に終了していますので、通常通りにhttp://ドメイン名(必要に応じてフォルダ名)/でサイトを表示させ、必要な部分の修正が完了しているかどうかの確認をしてみてください。

WorddPressのドメイン変更であれば、この段階で、新サイトが旧サイトと同様に表示ができるはずです。

 

Search Replace DBの削除

このツールは大変便利ですが、一見してわかるようにサイトのDBパスワード、ユーザー名、DB名など必要な情報をいつでも確認できてしまいますし、サイト内部のコンテンツ内容をいつでも「一括置換え」可能な、セキュリティ上かなり危険なツールです。

ですから、使用が完了したら、ツール上の[delete me]ボタン または FTPでフォルダごと完全に削除をしておきます。