WordPressでサイトを作っていると、何度もWordPressの管理画面が真っ白になる現象に遭遇します。しかも毎回同じ理由であれば対処も簡単なのですが、毎回違う理由でWordPressの管理画面が真っ白になったりログインできなかったりということがあります。
今回は実際にWordPressの管理画面が真っ白になってしまった際の対処法をいくつかご紹介します。
4割はプラグインが原因
過去の経験では、WordPress管理画面が真っ白になる4割の原因はプラグインが原因でした。その際にまず試してほしいのが、「plugins」ディレクトリのリネームです。
「plugins」ディレクトリを「_plugins」にしてみる。
もしこの方法で正常に表示されたら、プラグインが原因です。「plugins」ディレクトリの中にある各プラグインのディレクトリをリネームして1回ずつリロードしてみましょう。もちろん管理画面が正常に表示されていなかった場合、リネームしたプラグインのディレクトリは元に戻しておきます。
「akismet」を「_akismet」にリネームし、リロードする。正常に表示されなければリネームしたディレクトリを「akismet」に戻しておく。
具体的に過去に影響があったプラグインは下記のプラグインです。
キャッシュ系のプラグインは読み込むファイルのパスを迂回する処理が含まれていたりするので、移行後はwp-config.phpや.htaccessを確認して関連するコードを削除することで解消しました。
2割はテーマが原因
実は、WordPressテーマが原因でWordPressの管理画面が表示されないこともあります。
例えばテーマの「functions.php」の末尾に下記のようなコードが入っていた場合です。
?>
一見PHPの閉じタグしかありませんが、実は上記のコードがテーマに含まれていた場合ログインページが真っ白になり遷移することができませんでした。
ちなみに下記のコードであれば問題なく動きます。
?>
この2つの違い、実は改行が含まれているかいないかです。たったそれだけでも、WordPressの管理画面が表示されなくなる要因になります。
というよりそもそも、HTML内にPHPを記述するなど特別な事情がない限りPHPの閉じタグは書かないことがセオリーとなっています。
「?>」の外はHTMLとして扱われるので、改行が含まれているとWebサーバにHTTPヘッダとして出力して渡されるのですが、その後で別のHTTPヘッダ(リダイレクト処理やcontent-typeなど)を独自に出力しようとするとすでにHTTPヘッダ出力が終わっているので出力エラーとして扱われてしまいます。
というわけで、テーマの「functions.php」にPHPの閉じタグが含まれていたら容赦なく削除しておきましょう。
1割はデータベース設定が原因
WordPressは「wp-options」テーブルにサイトのURLを格納しているのですが、例えば「taishon.nagoya/wp」から「taishon.nagoya/wp2」にディレクトリが変わっている場合データベースのURLも変更が必要なので、修正する必要があります。
この場合は「siteurl」と「home」フィールドを探して、それぞれ修正すれば直る場合があります。
1割は.htaccessやwp-config.phpの設定が原因
例えばSSL証明書を適用して.htaccessでリダイレクトを行う場合、リダイレクト先のパスが違っていて404エラーが発生する可能性もあります。パスを再度確認してリダイレクト処理を修正すれば、正常に表示されることもあります。
また、プラグインが.htaccessやwp-config.phpに独自の処理を追加している場合もあります。その場合は、一旦最初にご紹介した各プラグインのリネームを行い、関連する処理を削除することで解決します。
1割はwp-adminの権限設定が原因
wp-adminは標準のパーミッション設定で問題ないことがほとんどですが、まれにWebサーバの権限設定によってはwp-adminディレクトリの権限を満たさない場合があります。
その場合は、「wp-admin」ディレクトリの権限を一旦「777」に設定し、正常に表示されたら「755」に変更するといった対応で修正可能です。
1割はPHPのバージョンが原因
WordPressのバージョンが4系でPHP8系の環境においた場合、まず動きません。最新のWordPress5.8は最低要件がPHP7.4となっていますが、PHP8に対応しているWordPressは5.6からです。
現在のWordPressのバージョンを確認し、PHPのバージョンが適切に設定されているかを一度確認してみましょう。
可能であればデバッグモードを試す
クライアントのサイトの場合躊躇しますが、WordPressはデバッグモードという機能があります。
wp-config.phpに下記のコードを追加するだけですが、真っ白な画面ではなくエラーを吐いてくれるのでデバッグしやすくなりおすすめです。
define( 'WP_DEBUG', true );

エラーが出たらそのままコピーしてGoogleの検索欄に貼り付けてググりましょう!
まとめ
WordPress管理画面が真っ白になる場合、下記の原因が考えられます。
- 4割はプラグインが原因
- 2割はテーマが原因
- 1割はデータベース設定が原因
- 1割は.htaccessやwp-config.phpの設定が原因
- 1割はwp-adminの権限設定が原因
- 1割はPHPのバージョンが原因
原因や対処法がわかれば白い画面も怖くないので、ぜひお試しください。
コメント