WordPress「サイトに重大なエラーがありました」の解消方法

WordPress

こんにちは。安慶名勇子です。

WordPressにてホームページを運用されている方の相談に乗っていたときのこと。サーバーに設定されているPHPのバージョンがすでに非推奨になっていたため、推奨Verに更新してもらったところ、カスタム投稿タイプを利用しているページにて多数のPHPエラーが表示されてしまいました。また、個別投稿ページにアクセスするとこのようなエラーページが表示され、肝心のコンテンツには一切アクセスできないという状態に。

この現象を解消したので、その方法を記録しておきます。

どのファイルでエラーが出ているのかを調べる準備

どのファイルでエラーが出ていないかを調べないことには修正もできないので、まずはログを取ってみることに。ネットで調べてみると、wp-config.phpファイルのデバッグ記述を

define(‘WP_DEBUG’,false );

define(‘WP_DEBUG’, true);

に書き換えれば、wp-contentフォルダ内にログファイルが作成されると記載しているサイトが多くみつかりました。しかし、その方法ではログファイルができなかったんですよね。

さらに、エラー解析をしている間もサイト上にはPHPエラーが表示されているので、ひとまずサイト上のエラーの表示を非表示にするコードも追加しました。具体的な手順は下記の通り。

デバッグ準備の手順

  1. FTP接続ソフトにてサーバーにアクセス
  2. 該当サイトフォルダ配下にあるwp-config.phpファイルをダウンロード
  3. wp-config.phpをテキストファイルで開く
  4. define(‘WP_DEBUG’, false);の記述を探す
  1. 探した箇所を下記のように変更・保存する

下記コードをコピー&ペーストすると楽です。

  1. FTP接続ソフトにて該当サイトフォルダにアクセス
  2. wp-config.phpファイルをアップロード(上書き)
  3. テキストファイルでdebug.logという名称の空ファイルを作成する
  4. FTP接続ソフトにて該当サイト配下のwp-contentフォルダにアクセス
  5. debug.logをwp-contentフォルダにアップロード

デバッグの準備がこれで完了しました。

サイトでエラーを発生させてみる

サイトにアクセスし、「サイトに重大なエラーがありました」というエラーを出します。このエラーさえ出ればデータ取得はできるので、どの個別投稿にアクセスしてもOK。

ログファイルを解析する

FTP接続ソフトにて該当サイト配下のwp-contentフォルダにアクセスし、debug.logをダウンロードします。テキストファイルで開くとこのような記述がありました。どうも、header.php内のereg_replace()という関数でエラーが起きている様子。

PHP7対応の関数に変更する

ereg_replace()は、正規表現による置換を行う関数ですが、PHP 5.3以降は非推奨、PHP7では削除されているとのこと。どおりでエラーが出るわけだ…。ということで、ereg_replace()を新しい関数preg_replace()に書き換えます。

修正手順

  1. WordPress管理画面の「外観」「テーマエディタ―」へアクセス
  2. 右サイドバーに表示されるheader.phpを選択
  3. ログに出力されている行番号をもとにereg_replace()を探す
  1. preg_replace()に書き換える
  1. 「ファイルを更新」を押して完了

テーマエディタ―から更新できない場合は、FTP接続ソフトでサーバーから該当ファイルをダウンロードし、書き換え&アップロードを行えばOK。

  1. サイトにてエラーが解消されていることを確認する

ひとまず解消したものの…

上記修正でサイトのエラーは解消されました。

PHPのバージョンアップによるプログラムエラーだったわけですが、テーマのメンテナンスを自分で行わなければならない場合、このようなエラーはまた出てくるでしょう。PHPのバージョンは今後もどんどんアップしていきますから。その都度、自分でエラー解析&対処をしなければならないとなると、プログラムに精通している人でない限り、かなりハードルが高いのではないでしょうか。

そう考えると、購入後もしっかりテーマのメンテナンスを行ってくれるところってありがたいですね。その点、TCDはこまめにアップデートしてくれるので助かっています。有料テーマを購入する価値はここにあると思っています。

ちなみに、このブログで使用しているWordPressテーマはこちら。

というわけで、PHPバージョンアップによる「サイトに重大なエラーがありました」の解消方法でした。

Yuko Agena

Yuko Agena

モノづくりやひとり旅、ガジェット好きのソリスト。仕事のこと、プライベートのこと、日々考えていることをいろいろと発信中。

関連記事

特集記事

Yuko Agena

Yuko Agena

モノづくりやひとり旅、ガジェット好きのソリスト。仕事のこと、プライベートのこと、日々考えていることをいろいろと発信中。YouTubeチャンネルを開設しました。

最近の記事

  1. 【Vol.115】Kindle Oasis、やっぱり手に入れてよかった!読書捗りまくり!

  2. 【Vol.114】花粉症から逃れるために沖縄に移住するのは正解か否か

  3. 【Vol.113】Todoistのプロジェクトを全削除して一新!使いやすさが激的に向上した話

  4. 【Vol.112】wena3が故障!キーレスの便利さに慣れすぎて意識を戻すのが大変だった話

  5. TCDテーマのウィジェットに表示されるタグクラウドをシンプルなスタイルにカスタマイズしてみた

ランキング

  1. 1

    テレビなしの生活を10年以上続けている私が感じる、テレビのない生活のメリット・デメリット

  2. 2

    WordPress「サイトに重大なエラーがありました」の解消方法

  3. 3

    WordPressで管理者メールアドレスが変更できないときの対処法

  4. 4

    Todoistは有料版がおススメ!無料版との違いと使い心地をグランドマスターが解説してみる

  5. 5

    今の時代に必要なスキルは読み書きそろばんかもしれない

TOP