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生活を!
wordpressのURLを変更から設定地獄へと彷徨っていた時にこちらのサイトに助けられました!ありがとうございましたァ〜!!!
初めまして、ヤマネと申します。
サクラインターネットのレンタルサーバでドメインとサブドメインを作り、あとはインストールという状態なのですが、
インターネットのURLにサブドメインを入力しましたが、ワードプレスに繋がりません。
サクラインターネットのクイックという項目からならできそうなのですが、FFFTPなどのやり方が間違ってるのか、よくわかりません。
宜しくお願い致します。
ヤマネさん
記事、ご覧くださりありがとうございます。
ご質問の件、さくらのレンタルサーバに関する内容とお見受けましたので、さくらインターネットのユーザーサポートにお尋ねいただけますでしょうか。
define( ‘RELOCATE’, true );でワードプレスに入れるようになりました!!!
本当にありがとうございます!
とてもわかりやすく、大感謝です!
ログインできるようになりました!!!
助かりました!
ありがとうございます^^
初めまして、こんにちわ!
助けてください!!!!
ブログ内記載の下記を試したところ、
やっとブザマな「スタイルシート切れ」の状態でログイン画面まで戻りました。
●define( ‘RELOCATE’, true );
ですが、そのブザマなスタイルシート切れのログイン画面から
いくらサインインしても
「404 NOT FOUND」と表示されダッシュボードに入る事ができません。
ワープレの記事自体は、全てブザマな格好で残っているのですが、
とにかくログインできないので何もできず本当に困っています。
どうかどうか、せめてログインができれば。。。
助けてください!!!宜しくお願い致します。
たまきさん
ブログご覧くださりありがとうございます。
define( ‘RELOCATE’, true ); を試されたとのことですが、他の方法はいかがでしょうか? 「define~」を記述する wp-config.php にアクセスできているようですので、functions.php に update_option() を書く方法もいけるかなと思うのですが……
tecking様
コメントありがとうございます。
ご指摘の↓ですが、
functions.php に update_option()
functions.php がどこにあるのか解らず。。
fttpからthemeを探してみましたが、
数か所にfunctions.phpがあり、どれをいじればいいのか。。
define( ‘RELOCATE’, true );を記載でOKかと甘く見ていました。。
再度、お助けを宜しくお願い致しますToT
wp-content/themes/ の中には現在インストール済みのテーマ群が含まれているので、functions. php が複数見つかるのではと思います。
ちなみに、現在使用中のテーマは何でしょう?
本サイトからローカル環境にデータを移設してからこの現象に悩み続けていましたがこちらの方法で解決しました!本当に感謝です。
m3さん
こんな辺境ブログの記事、ご覧いただきありがとうございます! お役に立ててなによりです 🙂
ログインできずに、目の前が真っ暗になり・・・・
(画面は真っ白)
ようやくのことここに辿りつき、解決できました。
心から感謝申し上げます。
一層の発展を祈願します!!!
ありがとうございました! 本当に助かりましたTT
エラー表示がずっと出ていて、エラー画像でググったらこの記事にたどり着きました!そして、エラーが出ていたサイトが直りました!!!!本当に本当に本当にありがとうございます。ダメかと思って、せっかくいろいろカスタマイズしたサイトを消して1から作り直そうかととてもとてもとてもガッカリして泣いていたとこでした。この記事に出会えて本当に助かりました。本当にありがとうございます。あなたは神様です!!!!
助かりました・・・本当にありがとうございます。
初めまして本間と申します。
こちらのサイトを参考にさせて頂きました。
大変な事になりました・・・
function.phpに ↓
<?php // 新規作成のときはこの1行も追記
update_option( 'siteurl', 'http://www.example.com/wordpress' );
update_option( 'home', 'http://www.example.com/wordpress' );
を追記すると確かにスタイルシートが外れましたが
それでワードプレスへ入り込める訳でなく
元の状態にも戻りませんでした・・・
バックアップを取っておりfunctions.phpへ元の
ソースを貼り付けましたが何故か元には戻りません。
原因はわかりますか?
今の所誰もわからず途方にくれております。
本間さん
functions.phpに
http://www.example.com/wordpress
と、そのままコピペで追記されていらっしゃらないでしょうか?
お使いの環境に合わせ、URLを適宜書き換えてお試しください。
先日の件ですが未だに復旧できておりません・・・
追記の間違いは無く、もう一度試しましたが
スタイルシートは元に戻りません・・・
他に触ったファイルはなく、触る前の元ソースを
貼り付けても復旧しないのが意味がわかりません。
他に何か考えられる原因はありますか?
functions.php に update_option( ‘siteurl’, ‘http://www.example.com/foobar’ ) など記述すると
その時点でデータベースの内容が書き換わるので
その後に元ソースを貼り付けても、
データベース内は書き換え後の記述のままとなります。
スタイルシートが適用されないとのことですが
HTMLソースの中で style.css のパスはどのように記述されていますでしょうか?