WordPressの「あるあるトラブル」のベスト5に入るといっても過言ではないこのトラブル。
wordpressのURLを変更しようとしたら、エラーが出たので、ブラウザの戻るを押したりなどしていたらもうログインできなくなってしまいました。
正確にはログイン画面からログインした瞬間に存在しないページに飛ばされるので、ログインできない状態です。
(WordPress 日本語フォーラム [解決済み] 管理画面にログインできなくなってしまいました。 より)
WordPressを専用ディレクトリ
(例:http://www.example.com/wordpress)
にインストールしていて、実際には http://www.example.com/ をサイトのホームページにしたい場合。[設定]-[一般]にて
- WordPress アドレス (URL)……http://www.example.com/wordpress
- サイトアドレス (URL)……http://www.example.com
とする必要があるのですが、両方を http://www.example.com としちゃうとフォーラムでの相談例のような状況になってしまうわけです。
主流となっている解決法
フォーラムの当該トピックにもあるように、ひとまず原状復帰させるための定番の方法が二つあります。
- phpMyAdminでデータベースの中をのぞき、options テーブルの siteurl, home の値を http://www.example.com/wordpress に書き戻す
- wp-config.php に
define( 'WP_SITEURL', 'http://www.example.com/wordpress' ); define( 'WP_HOME', 'http://www.example.com/wordpress' );
と追記する
手堅いのは1ですが、phpMyAdminを使う必要があるため、レンタルサーバで最近よく見られるようになった「WordPress簡単インストール」系のサービスでインストールした方にはちょっとハードルが高い。2はそれより簡便なものの、[設定]-[一般]で任意の値を設定できなくなる短所があります。
(参考:Codex「サイト URL の変更 ― wp-config.php の編集」)
ということで、実はあんまり知られてない(当社調べ)方法をもう二つ紹介します。Codexにも書かれているのですが未翻訳なので……(翻訳作業への参加は追い追いということで ;-))
wp-config.php に RELOCATE 定数を追記する
wp-config.php に
define( 'WP_SITEURL','http://www.example.com/wordpress' ); define( 'WP_HOME','http://www.example.com/wordpress' );
の代わりに
define( 'RELOCATE', true );
と書いてサーバにアップしたのち http://www.example.com/wordpress/wp-login.php にアクセスします。
ログイン画面のスタイルシートがリンク切れを起こしてブザマな状態になってますがキニシナイ。いつもどおりにユーザー名・パスワードを入れると管理画面がすんなり復活します。[設定]-[一般]の表示もあらバッチリ。
ただしこの場合、
- WordPress アドレス (URL)……http://www.example.com/wordpress
- サイトアドレス (URL)……http://www.example.com
の状態で復帰しているので、完全に原状復帰させるのならサイトアドレス (URL)の値を書き換える必要があります。原状復帰できたら wp-config.php の追記箇所は不要なので削除しましょう。
functions.php に update_option() 関数を追記する
お使いのテーマディレクトリにある functions.php に以下を追記します(ない場合は新規作成)。
<?php // 新規作成のときはこの1行も追記 update_option( 'siteurl', 'http://www.example.com/wordpress' ); update_option( 'home', 'http://www.example.com/wordpress' );
追記後テーマディレクトリにアップしたのち http://www.example.com/wordpress にアクセスします。アクセス直後はスタイルシートが外れた状態でサイトが表示されるので、リロード。すると、サイトが正常に表示され、管理画面へのログインもできるようになるはずです。
このケースでも原状復帰できたら functions.php の追記(新規作成)箇所は不要なので削除しましょう。
ではではハッピーなWordPress生活を!
コメントを残す