[WordPress] サイトのURLを同階層に変更する

ちょっとトラブってパニクったので資料として残しておきます。

サイトのURLを変更する

インストール直後は、WordPressの管理ページと公開URLは同じURLになっています。

URL

管理ページは、このURLの下に/wp-adminなどと続きますが、その上階層までのディレクトリを指定するイメージです。

で、今回はサイトのアドレスを変更する話。

サイトアドレスを変更するには

手順としては主に2つ+1。

  • 管理ページからサイトアドレスを、新しいURLに変更する
  • 旧サイトアドレスにあったindex.phpのパスを変更して新しいパス直下に配置する
  • (パーマリンクを設定していた場合).htaccess ファイルを新しいパスの直下に移動させる

管理ページからサイトアドレスを、新しいURLに変更する

こちらは、上に画像で貼っていますが、管理ページにログインし、「設定」-「一般」に入ると上記の入力フォームが出てきます。

今回は、
http://www.hogehoge.com/wp

http://www.hogehoge.com/wp2
に変える想定にしましょう。
上の階層に移動する話は余所のサイトにたくさんありますのでね・・・

旧サイトアドレスにあったindex.phpのパスを変更して新しいパス直下に配置する

次に、
http://www.hogehoge.com/wp
の下にあったindex.phpを編集してwp2以下に移動させます。

index.phpの中身を見てみると以外なほどあっさりしています。

他はコメント文なので、これだけ。

PHPとか詳しい人ならわかると思いますが、indexページにリクエストがあった場合に
wp-blog-header.php
を読み込んでいます。
で、さらにwp-blog-header.phpから別なファイルを読み込んで・・・リクエストにあった処理をするわけです。

なので、新しい/wp2/index.phpにリクエストがあった場合に、新しいディレクトリからwp-blog-header.phpのパスを指定して読み込ませる必要があります。

で、ここの読み込みに失敗した話。

dirname( __FILE__ )とは?

dirname( __FILE__ )は、PHPの構文で、この場合は記載されているindex.phpがあるフォルダまでが取得されます。
なので、なんとなく絶対パスで書かれている風なので

require( dirname( __FILE__ ) . ‘/wp-blog-header.php’ );

require( dirname( __FILE__ ) . ‘/wp/wp-blog-header.php’ );
としてしまいそうですが、間違い。

index.phpは
http://www.hogehoge.com/wp2/に設置しますので、上記の例だと
dirname( __FILE__ ) は
http://www.hogehoge.com/wp2/
になってしまうので、
require(‘http://www.hogehoge.com/wp2/wp/wp-blog-header.php’);
と同義になってしまい、ファイルが読み込めないエラーになってしまいます。
PHPのエラーが表示されない状態だと、画面が真っ白になってしまい、頭も真っ白になります。

では、どう記述すればよいか

が正解のようです。
こんな書き方ができるんだな〜と思いましたが、フォーラムで教えて頂きました。

これはWordPressの話というよりはPHPの話ですね。

最後にもう一つ、パーマリンクを設定している場合は、旧ディレクトリ内に.htaccessが生成されているはずですので、それも新しいディレクトリに移動しておいてください。

You may also like...