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バージョンアップによる「サイトに重大なエラーがありました」の解消方法でした。

【Vol.080】やりがいと満足感を得るためには3軸目が大事…?人気YouTuberの番組から考えさせられたこと前のページ

【Vol.082】いよいよYouTubeチャンネル開設…? 動画発信に向けて考えていることあれこれ次のページ

ピックアップ記事

  1. まるでパスタ専門店の味!「青の洞窟 ボロネーゼ」に嵌っています
  2. 電子ペーパー・クアデルノ(A4サイズ)の購入を決めた理由

関連記事

  1. flat screen monitor

    WordPress

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

    メールアドレスが変わった、WordPressの管理者が変わった……

  2. WordPress

    投稿した記事が表示されないならプラグインを疑おう

    過去に投稿した記事が表示されなくなっている…というトラブルをたま…

  3. WordPress

    Table of Contents Plus の目次が画面からはみ出る現象を解決

    Table of Contents Plus というプラグインを…

  4. WordPress

    Crayon Syntax Highlighterのテンプレート一覧と背景色別一覧

    プログラムコードをWordPressに美しく掲載するなら、Cra…

  5. WordPress

    < が &lt; と表示されてしまう Crayon Syntax Highlighter の問…

    私、Wordpressのカスタマイズが好きでして、寝食を忘れてコ…

  6. TCD

    TCDテーマMAGで背景色や背景画像を設定する方法

    このブログはTCDのMAGというWordPressテーマで作って…

毎週金曜更新!安慶名勇子のPODCAST

PAGE TOP