WordPressのテンプレートをいじっていたら真っ白になった時にすること

概要

WordPressでテンプレートやfunctions.phpをいじっていると突然ページが真っ白になってしまうことがあると思います。
エンジニアからしたらすぐ原因がわかるのですが、エンジニア以外の方だとわからない場合が多いみたいなので解消法をまとめておきます。

現象

ページが真っ白になってしまう。

原因の特定と解決方法

これはほとんどの場合、テーマのファイルを修正中、PHPでなんらかのエラーが発生していることがほとんどです。
原因を特定するために以下のどちらかの方法をfunctions.phpの先頭(<?phpの下の行)に以下の1行を追加してからページを再表示してください。
または、wp-config.phpの設定を変更してください。
(1)エラーを画面表示する場合を選んだ場合は画面にエラーが出る場合が多いです。
(2)エラーを画面表示せずにログファイルに出力する場合は設定したファイルにエラーが出ているか確認してください。

<?php
// (1)functions.phpで設定する場合
// (1-1)エラーを画面表示する場合
ini_set('display_errors', '1');
// (1-2)エラーを画面表示せずにログファイルに出力する場合
ini_set('log_errors', '1');
ini_set('error_log', '/var/www/html/public_html/debug.log');
// (2)wp-config.phpで設定する場合
// (2-1)エラーを表示する場合
define('WP_DEBUG', false);// trueをfalseに変更
// (2-2)エラーを画面表示せずにログファイルに出力する場合
define('WP_DEBUG', true);// trueにしないとWP_DEBUG_LOGをtrueにしてもログファイルに出力しません
define('WP_DEBUG_LOG', true);// trueにしてログファイルに出力させる
define('WP_DEBUG_DISPLAY', false);// true:画面出力もする false:画面出力はしない


たいていの場合、
「Parse error: syntax error, unexpected ‘!’ in /path/to/functions.php on line 8」
のようなエラーメッセージが表示されると思います。
このエラーが出ていることが確認できれば、修正箇所も特定できます。

例えばsingle.phpでエラーが出ている場合であれば、記事ページだけエラーが表示され、他のページは表示されないと思います。
また、index.phpでエラーが出ていればトップページとテンプレートが用意されていないページのみでエラーが発生します。
header.phpでエラーが出ている場合はたいていの場合は全ページで読み込んでいるので、全ページでエラーがでることになります。
全ページでエラーが出るパターンとして、functions.phpにミスがある場合も考えられます。
このようにエラーメッセージやエラーが出ているページの種類からミスのあるファイルは特定できます。
ファイルまで分かればおそらく修正した内容が推測できると思うので、そのあたりを重点的に調査すれば解決できるはずです。

最後に

たいていの場合は上記の方法で対応できると思いますがもし違う原因の場合はその時の状況で判断しないといけないので上記方法ではPHPのエラーが確認できないということしか情報収集できませんので予めご了承ください。
自分では当たり前と思っている情報でも求めている人は多いことがよくあるので、なるべくいろいろなことを公開していきたいと思います。

参考

WordPressでのデバッグ
https://wpdocs.osdn.jp/WordPress%E3%81%A7%E3%81%AE%E3%83%87%E3%83%90%E3%83%83%E3%82%B0

よかったらシェアしてね!
  • URLをコピーしました!