だれかのなにかに役立てるウェブ制作者YoTaの趣味ブログ

wordpressで投稿ページの画面が真っ白になった時の対処法

wordpress

先日、サーバーのPHPを5系から7系にバージョンアップしたら、運用していたwordpressサイトの投稿ページ(single.php)の画面が真っ白になってしまうエラーが発生しましたので、その対処法を紹介します。

エラーの具合

こんな感じでした。

▼エラー時の状況
・トップページは正常
・page(固定ページ)も正常
・single(投稿ページ)は画面真っ白

画面真っ白になった時の対処法としては、パーマリンクの再設定がわりと鉄板なのですが、今回はそれでも治りませんでした。

となると、phpバージョンアップが原因=php関連のソースを見るべきと考えて、function.phpなどのファイルをチェック。ただ、このへんの構文をチェックしても問題はなさそう。

なので、wp-config.phpファイルで、エラー表示の設定にしてみたのですが、投稿ページが画面真っ白になってしまって確認できないため、エラーログも設定。

define('WP_DEBUG',true);
define('WP_DEBUG_LOG', true);

エラーログでようやく原因判明

ここでようやく分かったことは、投稿ページにだけ使っているphp構文があり、それが古い仕様でしか対応していないものだったので、ダメだったことが発覚しました。

エラー文
PHP Deprecated: Function ereg_replace() is deprecated in /home/****/****.php on line 5

使っていたソースはこちら

この「ereg_replace()」がダメだったんですね。どうやらphp6系以降、下記の関数は廃止になったそうです。

  • ereg()
  • ereg_replace()
  • eregi()
  • eregi_replace()
  • split()
  • spliti()
  • sql_replace()

ってわけで、ereg_replaceをpreg_replaceになおしてあげて、正規表現をpreg_replace用に修正してあげると、画面真っ白現象もなおりました。

まとめ

wordpressで、phpのバージョンアップをした時に画面真っ白になった場合は、廃止になったphp関数を使っていることが原因かもしれませんので、チェックしてみてください!

参考サイト

▼ereg_replaceをpreg_replaceに書き換えた
http://harukomugi.sakura.ne.jp/blog/2014/07/17/ereg_replace%E3%82%92preg_replace%E3%81%AB/

▼phpのeregでDeprecatedエラーが出てるから調べてみたら使えなくなるという非常事態が発生
http://www.promeshi.com/archives/153

ページ上部に戻る