「昨日までは普通に入れたのに、急にログインできなくなった!」「パスワードを変更したはずがエラーになる…」
WordPress(ワードプレス)を運営していると、こうしたトラブルに遭遇することは決して珍しくありません。管理画面に入れないと記事の更新もプラグインの調整もできず、焦ってしまいますよね。
でも、安心してください。ログインできない現象には必ず「技術的な原因」があり、それを一つひとつ紐解いていけば、必ず解決策が見つかります。
この記事では、ログインできなくなる主な原因を5つのパターンに分け、「FTPソフトが使える場合」「データベース(phpMyAdmin)が操作できる場合」など、皆さんが今置かれている状況に合わせた具体的な解決策を、専門的な内容を噛み砕いて解説します。
まずは状況整理:ログインできない5つのパターン
解決策を試す前に、まずは「なぜ入れないのか」を特定しましょう。主な原因は以下の5つに分類されます。
- パスワードやユーザー名の問題
単純な入力ミスや、ハッキング対策の複雑なハッシュ化(暗号化)が関わっている場合。 - 画面が真っ白になる(WSOD)
プラグインやテーマのプログラムがエラーを起こしている状態。 - リダイレクトループ
ログインボタンを押しても、またログイン画面に戻ってきてしまう現象。URL設定の不一致が原因です。 - セキュリティプラグインの影響
ログインURLを変更したけれど、そのURLを忘れてしまった場合。 - サーバー移転や更新のトラブル
ドメインの設定直後や、アップデート失敗によるメンテナンスモードの残留など。
それでは、それぞれの詳しい対策を見ていきましょう。
1.パスワードを忘れた・リセットメールが届かない場合
通常はログイン画面の「パスワードをお忘れですか?」から再発行できますが、メールサーバーの不調などでメールが届かないことがあります。そんな時は、システムの裏側から直接パスワードを書き換える方法が有効です。
【方法A】phpMyAdminを使ってデータベースを直接編集する
サーバーのコントロールパネルから「phpMyAdmin」というツールにログインできる場合の、最も確実な方法です。
- データベースを開く
phpMyAdminにログインし、左側のメニューから該当するWordPressのデータベースを選択します。 - ユーザー一覧を探す
たくさんのテーブル(表)が表示されますが、その中から wp_users という名前のテーブルを探してクリックします(wp_の部分は設定によって異なる場合があります)。 - 編集画面に入る
ユーザー一覧が表示されます。ログインできないアカウント(通常はIDが 1 のことが多いです)を見つけ、「編集」ボタンを押します。 - パスワードを書き換える(ここが重要!)
user_pass という項目があります。ここには現在、記号の羅列(暗号化されたパスワード)が入っています。
この値を、設定したい新しいパスワード(平文:そのまま記述)に書き換えてください。そして、その横にある「関数」というドロップダウンメニューから、必ず「MD5」を選択してください。 - 保存する
画面下の「実行」ボタンを押します。
なぜこれで直るの?
WordPressは本来、もっと複雑な暗号化方式を使っていますが、昔ながらの「MD5」という方式で保存されたパスワードも認識してくれます。ログインに成功すると、WordPressが自動的に最新の強固な暗号形式に変換して保存し直してくれるのです。
これはいわば、公式に用意された「非常口」のような仕組みです。
【方法B】FTPソフトを使って functions.php から強制変更する
データベースを触るのが怖い、あるいは権限がない場合でも、FTP(ファイル転送)ソフトが使えるなら解決できます。
- ファイルを取得する
FTPソフトでサーバーに接続し、/wp-content/themes/現在使用中のテーマ/ フォルダを開きます。そこにある functions.php をパソコンにダウンロードします。 - コードを追記する
ファイルをテキストエディタで開き、一番上の<?phpのすぐ下の行に、以下のコードを書き加えます。 ※あなたのユーザー名の部分を普段ログインに使っているIDに、新しいパスワードの部分を希望のパスワードに書き換えてください。
// ユーザー名を指定してパスワードを強制リセットするコード
$user = get_user_by( ‘login’, ‘あなたのユーザー名’ );
if ( $user ) {
wp_set_password( ‘新しいパスワード’, $user->ID );
} - アップロードして実行
編集したファイルをサーバーに戻し(上書きアップロード)、Webサイトのトップページなどを一度開きます。この瞬間にプログラムが動き、パスワードが書き換わります。 - 【重要】コードをすぐに削除する
ログインできたら、すぐにfunctions.phpを再度編集し、追記した行を削除してください。これを忘れると、ページを開くたびにパスワードがリセットされ続け、ログイン状態が維持できなくなります。
3.画面が真っ白で何も表示されない(死の真っ白な画面)
ログインしようとしたら画面が真っ白(White Screen of Death)になり、エラーメッセージも出ない…。これはPHPというプログラムが「致命的なエラー」を起こして止まっている状態です。
【ステップ1】エラー内容を表示させる(デバッグモード)
まずは何が起きているかを知るために、隠されているエラーメッセージを表示させましょう。
- FTPでサーバーに接続し、一番上の階層にある
wp-config.phpをダウンロードします。 - ファイル内の
define( 'WP_DEBUG', false );と書かれた部分を探します。 - これを以下のように書き換えてアップロードします。
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); - これで、
/wp-content/フォルダの中にdebug.logというファイルが生成されるようになります。このログを見ると、「どのプラグインの」「何行目」でエラーが出ているかが分かります。
【ステップ2】FTPを使って原因のプラグインを停止する
ログを見るのが難しい場合や、原因のプラグインが分かった場合は、FTP操作でそのプラグインを強制停止させます。
- FTPで
/wp-content/plugins/フォルダを開きます。 - 原因と思われるプラグインのフォルダ(例:
xxx-plugin)を見つけます。 - フォルダの名前を変更します(例:
xxx-plugin_STOPなど)。 - これだけでOKです。WordPressはフォルダ名が変わるとそのプラグインを見つけられなくなり、自動的に「無効化」してシステムを起動させます。
【上級者向け】データベースから全プラグインを停止する
FTPが使えず、phpMyAdminしか使えない場合の奥の手です。
wp_optionsテーブルを開き、active_pluginsという項目を探します。- この中身をすべて消し、以下の文字だけを入力して保存します。
a:0:{} - これは「有効なプラグインは0個です」という意味のデータです。これで全てのプラグインが一斉に無効化され、管理画面に入れるようになります。ログイン後に一つずつ有効化して犯人を探しましょう。
4.ログイン画面がループする(リダイレクト地獄)
正しいパスワードを入れているのに画面がリロードされるだけ、あるいは「リダイレクトが多すぎます」というエラーが出る場合。これはURLの設定ミスが原因であることが多いです。
【対策A】wp-config.phpでURLを強制上書きする(一番おすすめ)
データベースをいじらずに、設定ファイルで正しいURLを宣言してしまう方法です。
- FTPで
wp-config.phpをダウンロードして開きます。 - 以下の2行を追記します(
example.comの部分はご自身の正しいURLにしてください)。define( 'WP_HOME', 'https://example.com' );define( 'WP_SITEURL', 'https://example.com' ); - これをアップロードすれば、即座にURL設定が修正され、ログインできるようになります。
【対策B】Cookie(クッキー)の設定を確認する
もし過去に「サブドメイン(例: sub.site.com)」で運用していて、今は「メインドメイン(site.com)」に戻した場合などに起きやすい問題です。
wp-config.php の中に、以下のような記述が残っていませんか?
define('COOKIE_DOMAIN', 'sub.site.com');
これが残っていると、ブラウザが「ドメインが違うからCookieは無効だ」と判断してしまい、ログインセッションが保存されません。この行を削除するか、以下のように空に書き換えてみてください。
define( 'COOKIE_DOMAIN', '' );
あわせて、ブラウザのキャッシュとCookieを削除することも忘れずに行いましょう。
5.ログインURLを変更したまま忘れてしまった
「SiteGuard」や「WPS Hide Login」「All In One WP Security & Firewall」などのセキュリティプラグインを使って、ログインURLを /wp-admin/ 以外に変更したけれど、そのURLを忘れてしまった場合です。
データベースから「隠しURL」を探し出す
phpMyAdminが使えるなら、変更後のURLはデータベースの中に記録されています。
wp_options テーブルの中で、以下のような名前のデータを探してみてください。
whl_page(WPS Hide Loginの場合)siteguard_login_url(SiteGuardの場合、設定による)
この項目の「値(option_value)」に、あなたが設定した秘密のキーワードが入っています。
プラグインを強制停止してリセットする
URLが見つからない場合は、「3. 画面が真っ白で…」で紹介した方法と同じく、FTPでプラグインのフォルダ名を変更してしまいましょう。
例:/wp-content/plugins/wps-hide-login/ → wps-hide-login_OFF
プラグインが無効になれば、ログインURLの設定も解除され、通常の /wp-login.php でアクセスできるようになります。
6.サーバー移行直後・アップデート失敗の場合
サーバー移転直後でサイトが見つからない(DNS未反映)
サーバーを引っ越した直後は、世界中のインターネット上の住所録(DNS)が書き換わるまで数時間〜3日ほどかかります。その間、自分のパソコンからはまだ「古いサーバー」が見えてしまっていることがあります。
これを回避するには、パソコン内の「hostsファイル」というメモを編集して、強制的に新しいサーバーへ繋ぐ技があります。
hostsファイルの編集(Windows/Mac共通の概念)
パソコンの中にある hosts というファイルに、以下のように「新サーバーのIPアドレス」と「ドメイン」を書き込みます。
192.0.43.10 example.com
こうすると、DNSの切り替えを待たずに新サーバーの管理画面にアクセスできます。作業が終わったら、必ずこの行は削除しておきましょう。
アップデート失敗で「メンテナンス中」のまま消えない
WordPressの更新中に通信が切れると、画面に「現在メンテナンス中のため、しばらくの間ご利用いただけません」と表示されたまま戻らなくなることがあります。
これは、更新中であることを示す .maintenance というファイルが消え残っているのが原因です。
解決策
FTPで接続し、一番上の階層にある .maintenance という名前のファイルを削除してください。これだけで、すぐにサイトが表示されるようになります。
※ ファイル名の頭にドットがついているため、「隠しファイル」扱いになっていることがあります。FTPソフトの設定で「隠しファイルを表示する」をオンにしてください。
まとめ:状況別・対策早見表
最後に、どのツールが使えるかで対策をまとめました。
| 困っている症状 | FTPが使えるなら | phpMyAdminが使えるなら |
| パスワード忘れ | functions.php にリセットコードを追記 | wp_users テーブルでMD5ハッシュ書き換え |
| 画面が真っ白 | デバッグログ確認 & プラグインフォルダ名変更 | wp_options の active_plugins をリセット |
| リダイレクトループ | wp-config.php にURLを記述 | wp_options の siteurl を修正 |
| ログインURL不明 | プラグインフォルダ名変更 | wp_options から設定値を探す |
| メンテナンス中 | .maintenance ファイルを削除 | (FTPでの対応が基本) |
管理画面に入れないと焦りますが、データベースやファイルシステムにアクセスできる手段(FTP情報やホスティングパネルのログイン情報)さえ確保しておけば、必ず復旧できます。
まずは深呼吸をして、一つずつ上記の手順を試してみてくださいね。
