この記事では、Wordpressのダッシュボード⇒設定にある『WordPress アドレス (URL)』と『サイトアドレス (URL)』という項目を書き換えた後に、サイトが表示されなくなった時の対処方法をご紹介しています。
WordPress簡単インストールを使えば、最初から設定されているので通常いじる機会はありませんが、この項目をいじるタイミングというのは、大きく2つです。
これ以外の理由で変更する場合は正しく設定してもサイトが表示されなくなる可能性が高いです。
- SSL化した時:http⇒https
- 公開アドレスを変更したいとき:Wordpressの公開URLにサブディレクトリがついてしまう(/wp)
この記事を読むことで、『WordPress アドレス (URL)』と『サイトアドレス (URL)』という項目を書き換えてサイトが開かなくなってしまっても落ち着いて対処することができるようになり、今後困ることは無くなります。対処方法はとても簡単なので誰でもできます。
『WordPress アドレス (URL)』と『サイトアドレス (URL)』を間違ってサイトが開かなくなった時の対処方法
本家のサイトにそのままズバリ、4通りの方法が書かれています。
今回は誰でも簡単にできる最初の2つについて説明します。
- wp-config.php の編集
- functions.php の編集
- リロケート・メソッド
- データベースで URL を直接編集する
wp-confing.phpを編集する方法
wp-config.php ファイルで、サイト URL を手動設定できます。 以下の2行の “example.com” をサイトの正しいアドレスに置き換え、wp-config.php ファイルに追加します。
define('WP_HOME','http://example.com'); define('WP_SITEURL','http://example.com');
この方法は編集するファイルが決まっているので簡単なのですが、私はこの方法はあまりやりません。
この方法を使うと、サイトの一般設定ページで値を変更することはできなくなります。
また、データベースを更新しないので、ファイルを戻すと同じ状態に戻ってしまいます。
function.phpを編集する方法
function.phpを編集する方法は、有効になっているテーマを知らないとどのファイルを編集したらよいのかわからないので、少し面倒ですが、編集し慣れているということもあり、私がよく使う修正方法です。
設定画面で書き換えている時と同じように、データベースを更新してくれる方法なので、こちらの方法が根本解決になります。
function.phpの最初の “<?php” 行のすぐ後に以下の2行を追加する。
update_option( 'siteurl', 'http://example.com' ); update_option( 'home', 'http://example.com' );
どっちがどっちか?というのはいつも悩みますが、
『WordPress アドレス (URL)』は、update_option( ‘siteurl‘, ‘http://example.com’ );
『サイトアドレス (URL)』は、update_option( ‘home‘, ‘http://example.com’ );
に対応します。
function.phpに追加して正常に動作したら、追加した記述は削除しましょう。そうしないとサイトの一般設定ページで値を変更しても反映されません。
公開URLからサブディレクトリを削除する方法
こちらはおまけですが、今回ご紹介した方法とあわせてよく使うので残しておきます。
WordPress簡単インストールを使うと、初期状態でサブディレクトリにインストールされてしまうサーバー会社があります。独自ドメインのあとに『/wp』などのサブディレクトリが付いてしまうパタンです。
サブディレクトリ無しにして、インストールしなおせばよいのですがある程度記事を公開してしまった後だとそれも面倒です。
サブディレクトリにwordpressを置いたまま、公開URLからサブディレクトリを削除する方法があります。
設定⇒一般の『サイトアドレス (URL)』を書き換える
サブディレクトリにwordpressがインストールされていると、ダッシュボードの設定⇒一般と進むと、『WordPress アドレス (URL)』と『サイトアドレス (URL)』のどちらもサブディレクトリ(例:/wp)が入っていると思います。
このうち、『サイトアドレス (URL)』だけ、余分なサブディレクトリ(例:/wp)を削除して、独自ドメインだけに変更します。
もし、まちがって設定してサイトが表示されなくなったら、function.phpを使って修正すれば大丈夫です。とても分かりにくいので、次のルールを参考に書き換えましょう。
『WordPress アドレス (URL)』は、update_option( ‘siteurl‘, ‘http://example.com/wp‘ );
『サイトアドレス (URL)』は、update_option( ‘home‘, ‘http://example.com’ );
index.phpを一つ上の階層にコピーして書き換える
サブディレクトリのwordpressのファイルにindex.phpがあるので、一つ上の階層にコピーします。
そして次のように書き換えます。
変更前: require( dirname( __FILE__ ) . ‘/wp-blog-header.php’ );
変更後: require( dirname( __FILE__ ) . ‘/wp/wp-blog-header.php’ );
.htaccessを一つ上の階層にコピーする
.htaccessを一つ上の階層にコピーします。
まとめ
この記事で言いたかったことは、次の2点です。特に後半の話はよく間違います。
『WordPress アドレス (URL)』と『サイトアドレス (URL)』を設定以外で書き換えるのであれば、wp-config.phpで書き換えるよりもfunction.phpで書き換える方が良い。
2つあるupdate_optionの指定内容は、通常同じなので迷うことはないが、もし、サブディレクトリをURLから削除するためにupdate_optionで変更する場合には、『WordPress アドレス (URL)』と『サイトアドレス (URL)』とupdate_optionの対応に気を付けること。勘でやると100%間違うから気を付けるべしというお話でした。