しばらくPodcastはお休みします。次回更新は1/28(金)の予定です。

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

WordPress・Web運営

こんにちは。安慶名勇子(アゲナユウコ)です。

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

仕事のこと、プライベートのこと、日々の出来事や思考をジャンルを問わず気ままに記録しています。どちらかというとソリストで、ひとり旅やモノ作りが好き。

更新情報

2022年1月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

最近の記事

  1. 【Vol.146】今年もお世話になりました。2022年は何もかもを一新します。

  2. 【Vol.145】本当に急なんですが、来年に向けての大きな決断をしました。

  3. 【Vol.144】全身、針で刺されるような痛みと高熱に悶え苦しんでおりました

  4. 【Vol.143】読み続けること、書き続けることの難しさとそこから得られるものの大きさのお話

  5. 【Vol.142】キャノンケーブル交換完了。ノイズ問題は解消したものの、後悔していること

ランキング

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

    YouTubeで流行っているらしいflixzoneを推奨するスパムコメントに気をつけて!

  5. 5

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

TOP