• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

サイト URL の変更

提供: WordPress Codex 日本語版
移動先: 案内検索

WordPress のシングルインストールでは、「設定 → 一般設定」画面に「WordPress アドレス (URL)」と「サイトアドレス (URL)」という2つの欄があります。これらは「ホーム」および「サイト URL」設定と呼ばれることもあります。両方とも、WordPress がサイトのインストール場所を理解するために重要な設定です。管理画面やフロントエンドの URL 表示をコントロールしたり、WordPress のコード内で使われたりしています。

  • 「WordPress アドレス (URL)」設定は、WordPress のコアファイルを配置する場所のアドレスです。
  • 「サイトアドレス (URL)」設定は、WordPress サイトに読者がアクセスするために使うアドレスです。

: 両方の設定には http:// の部分を含め、最後はスラッシュ("/")をつけないようにしてください。

時々これらの設定を変更(または修正)する必要がある場合もあります。片方または両方の値を変更してサイトが正しく動作しなくなった時などです。このページでは、この設定を管理画面以外から直接変更する方法を紹介します。

WordPress を引っ越す際のための追加情報も含まれていますが、壊れた状態のサイトを正しく直したいだけの場合は無視してください。

注: 以下の手順はシングルインストールの WordPress 向けのものです。WordPress マルチサイトをお使いの場合は、データベースを手動で編集する必要があります。

サイト URL の変更

サイト URL を手動で変更するには、簡単な方法が4つあります。どれもほとんど同じような結果が得られるでしょう。

wp-config.php の編集

wp-config.php ファイルで、サイト URL を手動設定できます。 以下の2行の "example.com" をサイトの正しいアドレスに置き換え、wp-config.php ファイルに追加してください。

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

これは最適な方法とは言えないかもしれません。サイトの値を決め打ちしているだけです。この方法を使うと、サイトの一般設定ページで値を変更することはできなくなります。

functions.php の編集

これらの値を間違って変更したとしても、サイトへの FTP アクセスができる場合は以下の方法でサイトを元の状態に戻すことができます。

1. サイトに FTP 接続し、現在有効化されているテーマの functions.php をコピーする。これをテキストエディタで編集し、サイトへ再アップロードすることになります。

2. 最初の "<?php" 行のすぐ後に以下の2行を追加する。

update_option( 'siteurl', 'http://example.com' );
update_option( 'home', 'http://example.com' );

もちろん、example.com ではなく自分の URL を使ってください。

3. ファイルをサイトの元あった位置にアップロードする。

4. ログインまたは管理画面を何度か読み込み直す。サイトが元の状態になっているはずです。

重要 functions.php ファイルに追加した行をそのままにしないこと。サイトが元に戻ったらすぐに該当行を削除してください。

""Note"": テーマフォルダ内に functions.php ファイルがない場合は、"functions.php" という新規テキストファイルを作成します。これをテキストエディタで開き、以下の内容を追加してください。example.com は自分のサイトの URL に変更します。

<?php
update_option('siteurl','http://example.com');
update_option('home','http://example.com');

現在有効化されているテーマのディレクトリにアップロードし、上記のステップ4を行います。その後ファイルを削除してください。

リロケート・メソッド

WordPress はサイトを別のサーバーに移す時にサイトをすぐに動作させるのをサポートするため、自動リロケートメソッドに対応しています。

コードの仕組み

wp-config.php ファイルRELOCATE が定義されている場合(次の章を参照)、wp-login.php の以下のコードが実行されます。

if ( defined( 'RELOCATE' ) && RELOCATE ) { // 引越しフラッグを設定
	if ( isset( $_SERVER['PATH_INFO'] ) && ($_SERVER['PATH_INFO'] != $_SERVER['PHP_SELF']) )
		$_SERVER['PHP_SELF'] = str_replace( $_SERVER['PATH_INFO'], '', $_SERVER['PHP_SELF'] );

	$url = dirname( set_url_scheme( 'http://' .  $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ) );
	if ( $url != get_option( 'siteurl' ) )
		update_option( 'siteurl', $url );
}

ステップ

  1. サーバー上の wp-config.php を開く(またはダウンロードする)。
  2. "define" 宣言の後(「編集が必要なのはここまでです !」という行の直前)に、新しい行を追加し define('RELOCATE',true); と入力する。
  3. wp-config.php ファイルを保存する。ステップ1でダウンロードした場合は上書きアップロードする。
  4. ブラウザを開き、新サーバーの wp-login.php へ移動する。例えば、新しいサイトが http://example.org の場合は http://example.org/wp-login.php とブラウザのアドレスバーに入力する。
  5. 通常と同じようにログインする。
  6. ブラウザのアドレスバーを見て、正しいサーバーにログインしているかどうか確認する。正しい場合は管理画面で「設定 > 一般設定」へ移動し、アドレス設定が両方とも正しいかどうか確認する。変更を保存するのを忘れないように。
  7. 全て正しく修正されたら、wp-config.php を編集してステップ2で追加した内容を削除する。再度リロケートメソッドを使う予定がある場合は、行をコメントアウトするか true を false に変更してもよい。

注: RELOCATE が true に設定されている場合、ログイン画面にアクセスした際のパスを使ってサイト URL が更新されます。これで新しい URL で管理画面を使うことができるようになりますが、それ以外の設定を変更するわけではありません。他の設定は手動で変更する必要があります。

重要 RELOCATE 定数を wp-config.php ファイル内に残しておくのはセキュリティ上問題があります。これを行うと、攻撃者が一部の設定内におけるサイトの URL を好きなものに変更することができるからです。作業後は必ず、RELOCATE の行を wp-config.php から削除しましょう。

データベースで URL を直接編集する

ホスティングサービス上の phpMyAdmin にアクセスできる場合は、データベース内の値を直接変更してサイトをもとに戻すとよいでしょう。

  1. データベースのバックアップを行い、サイト外にコピーを保存する。
  2. phpMyAdmin にログインする。
  3. WordPress のデータベースへのリンクをクリックする。データベース内のテーブル一覧が表示される。
  4. この一覧で wp_options を探す。注: テーブル接頭辞 wp_ をインストール時に変更した場合は名称が異なるかもしれません。
  5. 表示 アイコンをクリックする。wp_options テーブルのフィールド一覧が表示される。
  6. option_name フィールドのカラムで、siteurl を探す。: wp_options 内には複数のページがあるので、ページ送りを使って探す。
  7. 通常は行の一番左にある編集アイコン(エンピツ)をクリック。
  8. option_value の入力欄で、新しい URL を入力する。
  9. 間違えていないか確認し、「実行する」をクリックして保存。
  10. wp_options テーブルに戻るので、今度は home フィールドを探して編集アイコンをクリック。
  11. option_value の入力欄で、新しい URL を入力して保存する。

サイトの引越し

サイトをある URL から別の URL に移動する際、新しいサイトの URL 情報が適切に認識されるよう手動でデータベース内のデータを修正する必要があることもあります。この作業を補助するツールはたくさんあり、通常は手動の修正の代わりにそれらを使うべきです。

以下は、情報としてのみ提供しています。このデータは完全ではなかったり間違っていたりする可能性があります。

WordPress をあるシステムから別のシステムに移動しようとしている場合は、まずWordPress の引越しのページを呼んでください。

テーブル接頭辞の変更

多くの WordPress 管理者と同じように、wp-config.php ハックを使いひとつのデータベースで複数のインストールを運営しているかもしれません。これらのハックの多くには動的にテーブル接頭辞を設定するような変更が含まれており、テーブル接頭辞を変更する場合には prefix_ ユーザーメタテーブル内の項目を必ず更新する必要があります。

上記のセクションと同じく、SQL の変更は永久的なものであり、まずデータベースをバックアップすべきであることを忘れないで下さい。

サイトのテーブル接頭辞を変更する場合、ユーザーメタテーブル内のテーブル接頭辞も変更するようにしてください。こうすることで、新しいサイトが古いサイトでの権限を正しく認識してくれるでしょう。

UPDATE `newprefix_usermeta` SET `meta_key` = REPLACE( `meta_key` , 'oldprefix_', 'newprefix_' );

テンプレートファイルの編集

WordPress テーマ内で、各テンプレートファイルを開いて以前のサイト URL を探して新しいものと置換しましょう。sidebar.phpfooter.php などに手動で入力したリンクを探してみてください。

WordPress は bloginfo() というテンプレートタグを使い、管理画面 > 設定 > 一般設定で入力した情報を元に自動的にサイトアドレスを生成します。テンプレートファイル内のタグは変更されません。

設定ファイルの編集

データベースが移動したり、何か変更があったりした場合は WordPress の設定を更新する必要があります。

  1. 設定ファイルを更新する必要があるのは以下の場合のみです。
    1. データベースが他のサーバーに引っ越され、localhost で運用されていない
    2. データベース名を変更した
    3. データベースのユーザー名を変更した
  2. wp-config.php ファイルのバックアップコピーを作成する。
  3. テキストエディタwp-config.php ファイルを開く。
  4. データベースホストの項目を探して更新する。
  5. ファイルを保存する。

この時点で、WordPress サイトが正しく動作しているはずです。

プロフィールの確認

  1. 管理画面で、設定 > 一般設定に移動します。ここで、上記「[Changing_The_Site_URL#Changing_the_URL URL の変更]」 で行った変更が正しいか確認します。
  2. WordPress アドレス (URL) に新しいアドレスが含まれているか確認する。
  3. サイト アドレス (URL) に新しいアドレスが含まれているか確認する。
  4. もしここで変更を行った場合は変更を保存をクリック。

.htaccess ファイルの編集

管理画面 > 設定 > 一般設定で情報を変更した後、パーマリンクや URL リライト、リダイレクトwを使っている場合は .htaccess ファイルを更新する必要があります。

  1. .htaccess ファイルのバックアップを作成する。これは推奨ではなく必須の作業です。
  2. .htaccess ファイルをテキストエディタで開く。
  3. 自分で追加したカスタムリライトやリダイレクトを探す。これらを他のテキストファイルにコピーして安全に保っておく。
  4. ファイルを閉じる。
  5. パーマリンク画面の支持に従って .htaccess ファイルのパーマリンクを更新する。
  6. 新しくなった .htaccess ファイルを開き、カスタムリライトやリダイレクトがまだあるかどうか確認する。なかったばあいは、保存しておいたファイルからペーストして .htaccess ファイルに書き写す。
  7. カスタムリライトやリダイレクトに新しいサイトのアドレスを反映させる。
  8. ファイルを保存する。
  9. リダイレクトなどをテストし、きちんと動作しているか確かめる。

もしも間違った場合はバックアップからのデータベースの復元を行い再度試すことができます。

その他気をつけること

サイトを引っ越す際には、他にもアドレスを修正するために変更する必要があるかもしれない点があります。

  1. 画像リンク: 画像リンクは wp_posts テーブルの "post_content" に保存されています。上で紹介したコードと似たようなものを使って、画像リンクを更新できます。
  2. wp_options: 上で言及した "siteurl" と "home" 項目以外にも option_value 内で更新が必要なものがあります。例えば "upload path" や、一部のプラグイン関連項目 (ウィジェット、統計情報、サイトマップなど、インストールしたものによる) などです。
  3. 古い URL を含むウィジェットを修正するには、外観 > ウィジェット画面からの更新が必要な場合もあります。
  4. 残っている項目がないかどうか、データベースの一斉検索を行いましょう。変更したものが何なのか必ずしっかり理解し、誤って置換したものがないかどうか各項目を確認しましょう。
  5. マルチサイトネットワークを運用していたり、複数のサイトを持っている場合は、データベース内の URL インスタンスを置換する必要があります。URL は各サイトのテーブルを含む複数のテーブルに保管されています。置換する場合は最新の注意を払い、変更する前にフィールドが何を意味しているか理解しておきましょう。以下にある「GUID についての重要事項」を読んで変更すべきでないものを知っておいてください。
  6. 注: 'dashboard_incoming_links' 内のデータベースオプションテーブルに旧 URL を見つけた場合、このオプションを削除するか無視してください。これはバージョン 3.8 以降使われていません。

How To: Move Your WordPress Blog to a New Domain - エクスポート・インポート機能を使った新しいドメインへのサイトの引越し

GUID についての重要事項

上記の作業を行いデータベース内で直接 URL を変更している際、wp_posts テーブルの "guid" カラム内に URL が含まれているのに気付くかもしれません。

このフィールドに含まれる内容は変更しないことは非常に重要です。

"GUID" という言葉は "Globally Unique Identifier (グローバル一意識別子)" の略です。このフィールドには「すべてのスペースと時間に置いてユニークであり、 絶対に変更されない」という投稿の識別子が含まれています。GUID フィールドは主に、WordPress のフィードを作るのに使われます。

フィードリーダーがフィードを読み込む際、GUID フィールドの内容を使って項目が以前に表示されたことがあるかを認識します。やり方は色々ありますが、最も一般的な方法は過去に表示された項目の GUID の一覧を保持し、「既読としてマーク」のようにするものです。

したがって、GUID を変更するとフィードリーダーが突然ユーザーの購読画面ですべてのコンテンツを新しいものとして表示してしまいます。これは、ユーザーをイライラさせてしまうかもしれません。

GUID フィールドが「グローバルで (全世界的に)」ユニークであるために、URL または何らかの URL 的表現が使われるというのが受け入れられている慣習です。このため、もしあなたが example.com ドメインを保有している場合、あなたしか example.com を使っている人はいないため、これはあなたとあなたのサイトにとってユニークであると言えます。これが WordPress がパーマリンクやそのような形式を GUID に使っている理由です。

しかし、GUID は絶対に変更してはなりません。ドメインを変更しても、新しいアドレスに移動したとしても投稿はやはり同じ投稿です。新しい URL のフィードを読み込んだフィードリーダーは過去にユーザーが投稿を読んだかどうか認識する必要が有るため、GUID は同じものに保つ必要がありますどんな状況においても、GUID カラムの内容は絶対に変更しないでください。

もしデフォルトアップロードフォダーを他の位置に移動させる必要がある場合、posts テーブルの post_content カラムでメディア URL を更新する必要があります。例えば、デフォルトのアップロードフォルダーが wp-content/uploads から images へ変更となる場合は以下のとおりです。

UPDATE wp_posts SET post_content = REPLACE(post_content,'www.domain.com/wp-content/uploads','www.domain.com/images');

マルチサイトについて気をつけること

WordPress マルチサイトの移動ページを参照。

wp-cli

wp-cli は非常に便利なシェルツールです。

wp search-replace 'example.dev' 'example.com' --skip-columns=guid

または、このオプションだけ変更したい場合は以下を実行します。

wp option update home 'http://example.com'
wp option update siteurl 'http://example.com'

最新英語版: WordPress Codex » Changing The Site URL最新版との差分