WordPressで画面が真っ白になる原因ベスト3

WordPress個別サポート

WordPressで画面が真っ白になると大きなトラブルが起きたように思うかもしれませんが、多くはPHPの入力ミスです。定番のミスの原因を3つ紹介します。ご注意ください。

半角で入力する文字を全角で入力している

設定ファイル(wp-config.php)を編集するときに、データベース名やユーザー名、パスワードを変更することがあります。

ただし、次のように編集すると画面が真っ白になったり、「データベース接続確立エラー」(Error establishing a database connection)と表示されます。

define('DB_NAME', ’test_db1’);

何がおかしいのかピンとこないかもしれませんが「記号は半角で入力!」という点でチェックしてみてください。「'」と入力すべき記号が全角の「」になっています。非常にわかりづらいので拡大してみます。

半角と全角の違い
半角と全角の違い

どうでしょうか。DB_NAMEを囲むシングルクォーテーション「'」は半角です。これは問題ありませんが、test_db1を囲んでいるのは全角の「」です。これが原因で画面が真っ白になります。

ここまで拡大しても気づかない方がいるかもしれませんが、それくらいわかりづらいです。実際、ここに気づかずにWordPress個別サポートに相談される方がかなり多いです。ご注意ください。

【教訓1】PHPのコードは半角で入力!特に記号に注意!

PHPの開始・終了タグが釣り合っていない

PHPのコードは開始タグ <?php で始まり、終了タグ ?> で終わります。functions.phpのように、HTMLを含まないファイルの場合は終了タグが存在しない場合がありますが、原則的にPHPは <?php?> の間に記述します。

たとえば、既存のコードが次のように入力されているとします。

<?php
/* 既存のコード */


?>

ここに新たなPHPのコードを追加するとします。

<?php /* 新たなコード */ ?>

次のように追加すると画面が真っ白になります。PHPのタグが閉じていないのに2つ目の開始タグ <?php が書かれているためです。

<?php
/* 既存のコード */

<?php /* 新たなコード */ ?>
?>

この場合、新たなコードの前後にあるPHPの開始・終了タグを取り除けば大丈夫です。

<?php
/* 既存のコード */

/* 新たなコード */
?>

または、前のPHPの終了タグが終わってから新たなコードを入力します。

<?php
/* 既存のコード */

?>
<?php /* 新たなコード */ ?>

難しく思えるかもしれませんが、PHPの開始タグが閉じてから、次の開始タグを入力するということです。つまり、開始タグが閉じていないのに次の開始タグを入力してはダメです。

【教訓2】PHPの開始・修正タグ(<?php ?>)が釣り合っているかチェック!

全角のスペースが入っている

次のコードは「WordPressアドレスの修正ミス」に対処するときに使いますが、wp-config.phpに入力すると画面が真っ白になります。どこが間違っているか、わかりますか?

define('WP_SITEURL', 'http://example.com'); 

正解は「行末の ; の後に全角スペースが入っている」です。わかりづらいですね。FTPツールを使っていると全角スペースが見えない場合があるので、一生懸命に間違いを探しても見つからないかもしれません。

そのような理由でPHPファイルの編集にはテキストエディタが欠かせません。

テキストエディタなら全角スペースが見える
テキストエディタなら全角スペースが見える

全角スペースも見えるので、エラー原因がすぐに見つかります。

上記の例は行末の全角スペースでしたが、途中に入力するスペースも全角はダメです。たとえば、次のコードを入力すると画面が真っ白になります。

define('WP_SITEURL', 'http://example.com');

全角スペースがダメというのは、最初に紹介した「記号は半角で」と同じことです。基本的にプログラミング言語は半角で入力する必要があります。その中でも、スペースが半角なのか全角なのかは非常に紛らわしいので注意してください。たった1文字で画面が真っ白になります。

【教訓3】見えない敵「全角スペース」に要注意!

まとめ

以上、画面が真っ白になる原因としてPHPの典型的な入力ミスのパターンを3つ紹介しました。画面が真っ白になるとすぐに「再インストールが必要?」と、とんでもない方向に意識を向ける方がいますが、ほとんどの原因は単なる入力ミスです。

編集したファイル、入力したコードをじっくり見てください。ほとんどの原因は、そこにしかありません。