WordPressはMySQLというデータベースでサイトのさまざまな情報を管理していますが、別のドメインへシステムを移転させるには、基本的なサイトURLの登録情報の他、パーマリンクと呼ばれる各投稿記事のURLに埋め込まれたドメイン名を新ドメイン名へ置換する必要があります。
例えば以下の図は、WordPressのデータベースの一部を視覚化したものです。
サイトURLやパーマリンクは、下図のように保存されています。

WordPressは1記事ごとに記事のURLをデータベースに保存する仕組みになっています。数百、数千といった記事を置換するにはphpMyAdminなどのウェブブラウザからデータベースの操作ができる専用ツールを使うと便利です。
そこで今回は、データベースの操作に不慣れな方でもphpMyAdminからドメイン名を一発置換し、旧ドメインで使っていたWordPressのデータベースを新ドメインで使えるようにする方法をご紹介したいと思います。
作業の流れ
- phpMyAdminにアクセスをする。
- データベースのバックアップをする。
- ドメイン名の置換用SQL文を作成する。
- 各データベースのテーブルからドメイン名の置換を実行する。
phpMyAdminとは?
phpMyAdminはMySQLのデータベースをウェブブラウザから操作でき、専門的なSQL文を作成することなくデータの追加や参照ができる管理ツールです。
PHPとMySQLが使えるレンタルサーバーであれば標準で利用できます。
phpMyAdminのアクセス方法については、お使いのホスティングサーバーのサポートマニュアルをご参照下さい。
・ロリポップ ・ヘテムル ・さくらインターネット ・カゴヤ ・エックスサーバーphpMyAdminからドメイン名を置換してみよう
STEP1 phpMyAdminにログインする

ユーザ名・パスワードを入力、「実行」をクリックしてログインします。
※レンタルサーバーによってログイン方法が異なりますので、各サーバーのサポートマニュアルをご確認ください。

WordPressをインストールすると、MySQLには以下11個のテーブルが作成されます。
その中でも★印のマークがついたテーブルがドメイン名を含む置換対象のテーブルです。
wp_commentmeta | |
wp_comments | |
wp_links | |
wp_options ★ | サイトURLを含む基本情報が多く格納されています。 |
wp_postmeta ★ | カスタムフィールド値などが多く格納されています。 |
wp_posts ★ | 投稿記事のタイトルや本文、ページURLなどが格納されています。 |
wp_termmeta | |
wp_terms | |
wp_term_relationships | |
wp_term_taxonomy | |
wp_usermeta |
※別途プラグインを導入している場合など、仕様によってはプラグイン独自のテーブルが作成されることもあります。
STEP2 データベースのバックアップ
万が一書き換え等が失敗した時のために、必ずデータベースのバックアップファイルを作成してください。
タブメニューから「エクスポート」を開き、「実行」をクリックします。

何かしらのトラブルでデータベースを元に戻さなくてはいけない時は、タブメニューの「インポート」を開き、上記で作成したバックアップファイルから元の状態にリストア(復元)することができます。

STEP3 ドメイン名の置換用SQL文の作成
以下のコードは、WordPressで使っているデータベースから「旧ドメイン→新ドメイン」へ文字列を変換するコードです。
「旧ドメイン」「新ドメイン」の箇所を書き換えてSQL文を作ります。
1 2 3 4 5 |
UPDATE `wp_posts` SET guid=REPLACE (guid,'旧ドメイン','新ドメイン'); UPDATE `wp_posts` SET post_content=REPLACE (post_content,'旧ドメイン','新ドメイン'); UPDATE `wp_options` SET option_value=REPLACE (option_value,'旧ドメイン','新ドメイン'); UPDATE `wp_postmeta` SET meta_value=REPLACE (meta_value,'旧ドメイン','新ドメイン'); UPDATE `wp_posts` SET post_title=REPLACE (post_title,'旧ドメイン','新ドメイン'); |
上記SQL文は次のSTEPで使いますので、メモ帳などのテキストエディタへコピーして編集をしておきます。
STEP4 データベースのテーブルからドメイン名の置換を実行
タブメニューから「SQL」を開きます。
STEP3で作成したSQL文をテキストエリアに貼付けて「実行」をクリックします。
以下の図は「hogehoge.com(旧ドメイン)」から「new_hogehoge.jp(新ドメイン)」に書き換えた場合の例です。

書き換えが完了すると、以下の図が表示され赤枠のように書き換えが行われた行数を目視で確認することができます。

念のため、wp_postsやwp_optionsテーブルを開いて置換後のドメイン名を確認しておきます。
画面左側のwp_postsやwp_optionsをクリック。


もしドメイン名が意図したも内容に置換できていなかった場合は、STEP3のSQL文に誤りがある可能性があります。
その場合は、STEP3のSQL文を見直してSTEP4を再実行するか、STEP2のバックアップファイルからデータベースの復元後、STEP3から再度置換を行ってください。
置換後のデータベースを新ドメインでお使いになる場合は、以下の手順でデータベースの復元を行います。
- 旧サーバーのphpMyAdminでSTEP2のバックアップファイルを作成する。
- 新ドメインでデータベースを作成する。※作成方法についてはお使いのレンタルサーバーサポートマニュアルをご参照下さい。
- 新ドメインのphpMyAdminへログインする。
- 新ドメインのphpMyAdminからSTEP2で作成したバックアップファイルをインポートする。