なぜか複数持っているサイトの一つが急にsafariで開くと真っ白になっていました。解決することができたので、今後また起きた時に対応できるようにメモしておきます。
条件としてはこんなふうです。
- ロリポップのサーバーを使っている。
- 一つのサーバーで複数のワードプレスのサイトを運営している。
- その複数のワードプレスのサイトの中で1つだけ画面が真っ白に。
- iPhoneのsafariやmacのsafariでサイトを表示させると、画面が真っ白。
- 特に何もいじってないが、突然起きた。
- https:xxxx.com/wp-admin のログイン画面を見てもどうように白色
- chromeでみると、HTTP ERROR 500が表示

原因を確認
こんな場合に最初に行ったのは、まずはワードプレスのテーマとプラグインを疑いました。結局は違ったのですが、対応としてはこのように行いました。
プラグインが原因か確認
ロリポップのFTピーの対象サイトにあるプラグインのフォルダー名を一時的に変更。これで全プラグインを強制停止しました。ここで原因であれば復活しますが、復活しませんでした。
このフォルダーを
wp-content/plugins
こういうふうに変更します。
wp-content/plugins_old
ワードプレスが原因か確認
つぎにワードプレスが原因かを確認しました。ワードプレスのフォルダーの名称を変更すると、デフォルトに変更されます。デフォルトに変更されて、回復すれば、テーマに問題があるかがわかるという理屈です。
FTPで対象サイトのフォルダーがこういうふうになってます。(わたしの場合はswellです。)
wp-content/themes/swell
これを一時的に名称を変えてみます。
wp-content/themes/swell_old
これでも結局、変化はわりませんでしたので原因ではありませんでした。
エラー表示で確認する
FTPにてこのファイルを編集します。
wp-config.php
この部分を変更します。
define('WP_DEBUG', false);
このようにします。
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);
それでこんな感じでエラーがでました。このエラーはわかりませんが、どうもこれはワードプレス本体ファイルの不整合がかなり濃厚みたいです。特にwp-includes配下で同じ関数が2回宣言されている状態です。
wp-includes/formatting.phpとwp-includes/deprecated.phpの両方でaddslashes_gpc()が宣言されているため、WordPress本体ファイルのバージョンが混ざっています。
Fatal error: Cannot redeclare function addslashes_gpc() (previously declared in /home/users/1/sub.jp-xxxxxxxxxxxxx/web/xxxxxxxxxxxxx.com/wp-includes/formatting.php:2848) in /home/users/1/sub.jp-xxxxxxxxxxxxx/web/xxxxxxxxxxxxx.com/wp-includes/deprecated.php on line 6503 Fatal error: Uncaught Error: Call to a member function set() on null in /home/users/1/sub.jp-xxxxxxxxxxxxx/web/xxxxxxxxxxxxx.com/wp-includes/l10n.php:857 Stack trace: #0 /home/users/1/sub.jp-xxxxxxxxxxxxx/web/xxxxxxxxxxxxx.com/wp-includes/l10n.php(960): load_textdomain('default', '/home/users/1/s...', 'ja') #1 /home/users/1/sub.jp-xxxxxxxxxxxxx/web/xxxxxxxxxxxxx.com/wp-includes/class-wp-fatal-error-handler.php(49): load_default_textdomain() #2 [internal function]: WP_Fatal_Error_Handler->handle() #3 {main} thrown in /home/users/1/sub.jp-xxxxxxxxxxxxx/web/xxxxxxxxxxxxx.com/wp-includes/l10n.php on line 857
対処方法
それで対応した手順としてはwordpressを公式サイトからダウンロードしていくつかのファイルをアップロードすることで対処しました。
- まずはサイトの中のファイルをバックアップを取りました。
2. 公式からWordPress最新版をダウンロード。
URL: https://wordpress.org/download/
3. 解凍した中から、下記だけを上書き。
wp-admin
wp-includes
さらに直下のWordPress本体ファイルも上書き。
index.php
wp-login.php
wp-settings.php
wp-load.php
wp-cron.php
xmlrpc.php
ただし、これは絶対に上書きしない。
wp-content
wp-config.php
.htaccess
これでwordpressのサイトで画面が真っ白の問題を解決することができました。
なおwordpressにログインすると、こんな感じで自動更新に失敗したと表示されていました。


