ブログの困ったを解決 雑記

【WordPress】重大なエラーが発生して、記事の投稿画面に入れないときの対処法

いつも通りに記事を投稿したんですよ。

そしたら、、、

「このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。」

、、めちゃ焦りました。

こんなのWordPress 3年使ってて、初めてで(汗)

記事を投稿したら重大なエラーが出て、その記事の投稿画面にだけ入れなくなってる。。。

ググってみても、ドンピシャで同じ様な状況の記事はなく、解決するまでにあれこれ調べまくって、時間をかなり消費。。。

なので、ネット上の情報を増やすため、自分の忘備録のため、少しでも同じような状況で困ってる方のためになればと、、、そのときのことを書いて行きます。

この記事に書いた方法で解決できるのが一番ですが、もしできないとしても、解決のヒントになれるように、仮定や考え方も交えて、実際にやったことを書き残します。

結論:ぼくの場合、これで重大なエラーが解決しました!

リビジョンを削除することで、重大なエラーが解決しました!!

ほんとこれだけ!

じゃ、ここから振り返っていきます。

時を戻そう!

重大なエラー「ある記事の投稿画面にだけ入れない」〜発生時の状況

<発生時の状況>
→プラグイン『Yoast Duplicate Post』を使って複製した記事『【初心者にもわかりやすい!】WordPressの使い方』の編集画面で、「Republish」を押して記事を再公開したら、重大なエラー発生。

以後、この記事の投稿画面に入ろうとすると同じエラー画面が出て、投稿画面にアクセスできない。

他の記事の投稿画面には入れるし、その他はブログ上にもどこにもエラーは出ていない。

<発生時刻>2021年9月20日(月)午前11:07頃
<WordPressバージョン>5.8.1(この当時最新バージョン)
<ブラウザ>Brave
<エディタ>Gutenberg
<テーマ>AFFINGER6

こんな状況。

実際の状況の詳細は、こんな感じでした

記事を書いていたんです。

『【初心者にもわかりやすい!】WordPressの使い方』記事を、プラグイン「Yoast Duplicate Post」で下書きに複製して、加筆していたんです。

で、記事が出来上がったので、投稿編集の画面で「Republishe」を押して記事を公開しようとしたら、画面表示が、、、

重大なエラー発生-WordPress

となり、このサイトで重大なエラーが発生しました。

この直前にやったことを振り返ってみると、、、

「Republish」ボタン押したとき、たしか画面が変わらなくて「あれ?押せてなかったかな?」と思ってまた押したような気もするんですよね。

確証はないのですが、もしかしたらこうしちゃったのかもって。

で、上の画面でブラウザの再読み込みをしたら、、、

重大なエラー発生-再読み込み

このように表示が変わりました。

なるほど、投稿するときに『Yoast Duplicate Post』でエラーが起きたってことかと解釈。

ちなみにこのときブログに公開されてる記事の内容を確認したら、更新日はちゃんと今日になってるし、内容も間違いなくさっき書き上げた最新の内容だし、記事自体はちゃんと更新されて公開されてる。

だけど、投稿画面一覧からこの記事に入ろうとすると

重大なエラー発生-WordPress

が表示されて、投稿画面に入れない状態。

他の記事は大丈夫。この記事だけ。

やれやれ(汗)

重大なエラーを解決するために、ぼくがやってみたこと

「サイト管理者のメール受信ボックスを確認してください。」と表示されてますが、何も届きません(笑)(※結局何日経っても、届くことはありませんでした。)

そこで、『WordPressのトラブルシューティングについてはこちらをご覧ください。』を確認しました。

その画面のトピックスの中には今回のケースに該当しそうなものがない。。。

ですが、その画面にある「トラブルシューティング」→「WordPress でのデバッグ」を参考にしたところ、デバックモードにして、エラー内容を表示させることができるとのこと。

「これやって原因を突き止めるしかねぇ!」ってことで、それをやってみます!

デバッグモードにして、エラーログを出力させる

WordPressをインストールしているサーバー内のファイル「wp-config.php」内に以下のコード、、、

// WP_DEBUG モードを有効化
define( 'WP_DEBUG', true );

// /wp-content/debug.log ファイルへのデバッグログの出力を有効化
define( 'WP_DEBUG_LOG', true );

// エラーと警告の画面への表示を無効化
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

// 「開発版」のコア JavaScript と CSS ファイルを使用 (これらのコアファイルを変更する場合のみ必要)
define( 'SCRIPT_DEBUG', true );

これらを、

『/* That’s all, stop editing! Happy blogging. */ 』

より前のところに記述すれば、WordPressをデバッグモードにしつつ、ブログにはエラーや警告が表示されなくなり、デバッグログを出力できる。

※ぼくの環境では英語ではなく日本語で『/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */』と書かれてました。

これを参考にし、ぼくは、、、

define( 'WP_DEBUG', true );

define( 'WP_DEBUG_LOG', true );

define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

このコードをwp-config.phpに記述します!

※記述する前に、バックアップを取ることをおすすめします!!

ぼくはエックスサーバーのサーバーパネルから操作します。

※一般的には、FTPソフトを使ってサーバーのファイルをいじります。

エックスサーバーならFTPソフト不要で、ブラウザからすぐにできるので超便利なんです!

まず、エックスサーバーにログイン!

ファイル管理

該当サーバーの「ファイル管理」をクリックすると、下の画面に。

wp-config_phpの場所

ぼくの場合は「paso-jiyu.com」→「public_html」の直下にwp-config.phpがあります。

これにさっきのコードを貼り付け、編集完了。

これで「wp-content」の直下に、デバッグのログファイル「debug.log」が作られるはず!

、、、だったのですが、、、何も起こらない。

もちろんエラーの画面を何回か出してみてるんですが、、、全然ダメ。

念のために、サーバーの「php.ini」ファイルも確認してみたんですが、エラーがあったら出力する設定になっているので、ここの設定も、問題なさそう。

じゃなんでデバッグのログファイルができないんだ??

そこでググってみると、デバッグのログファイル「debug.log」が自動でできないときは、自分で作るといいとのことだったので、これを自分で作成。

それでも、、、変化なし。

debug.logの内容、真っ白のまま。

だからぼくは、こう判断しました。

PHPのエラーは現状、なにも起きていないんだ。

だからdebug.logはできなかったんだなって。

エラーの内容が書き込まれるように、何回かエラー画面出しても、ちょっと時間空けて様子みても、debug.logの中身が真っ白なままなのは、そういうことなんだなって。

そもそも今回のぼくの症状は、ブログ上にはどこにもエラー出てなくて、WordPress使い方記事の編集画面でのみエラーが出てる状況なので、そうなってるのだろうと。

だからぼくは、この方法での解決を諦めて、wp-config.phpの内容を元に戻しました。

※このままにしておくとdebug.logが丸見えで危険ですし、ダッシュボードのサイトヘルスを見ても、致命的な問題だよって言われるので。

別の方法を模索します。

※ちなみに、wp-config.phpに書くコードを、

define( 'WP_DEBUG', true );

if ( WP_DEBUG ) {
  define( 'WP_DEBUG_LOG', true );
  define( 'WP_DEBUG_DISPLAY', false );
  @ini_set( 'display_errors', 0 );
} 

と書いても、何も起こらない。。。

※上記コードはNxWorldさんの記事『WordPress:WP_DEBUG使用時に、エラー内容をログファイルに出力する方法(NxWorld)』を参考にしました。

また、

define( 'WP_DEBUG', true );

だけを書くと、本来ならエラーメッセージ出てた画面に、どこがまずいのかが具体的に表示されるようになるはずなのですが、、、まったく表示は変わらず。。。

でした(笑)

このことからも、重大なエラー画面は出てるが、PHP的には「エラーないよ」みたいな感じなのでしょう。

Yoast Duplicate Postのフォーラムで解決方法を探る

今回の症状の原因だろうと思っている『Yoast Duplicate Postのフォーラム』を見たのですが、とくに解決法は見つけられず。

むむむ(汗)

ヤバス。。。

一般的な改善方法を試してみる

そこで、こういう場合に効果があるかもしれない、以下全てのことをやりました。

  • パーマリンク保存
    =「設定」→「パーマリンク」→「変更を保存」クリック
  • プラグイン『Autoptimize』のキャッシュ削除
  • ブラウザのキャッシュ削除
  • サーバーのキャッシュ削除
  • 他のブラウザ(Safari、Chrome)から見てみる
  • つい最近インストールしたプラグイン(2段階認証)、怪しそうなプラグイン(Yoast Duplicate Post、Autoptimize)を停止したら改善するか試してみる

どれもダメ。。。

バックアップで戻すしかない?→リビジョン削除で解決だってばよ!

あとはもうエックスサーバーの自動バックアップ機能を利用して、WordPressの記事全体を、前日の状態にリカバリーするしかないかなと思ったのですが、でもこの日、がっつり記事書いてたので、、、なるべくそれはしたくない。。。

そこで、あれこれやってみました。

そしたら、エラー画面でしつこく何回かブラウザで更新をかけると、記事の投稿画面が出てきました!

でも一回画面を抜けてからWordPress使い方記事の投稿画面に行こうとすると、また重大なエラー表示画面になり、まともにWordPress使い方記事の編集画面にはやっぱり入れない。

もう一度しつこくブラウザで更新をかけ、記事の投稿画面に入り、よくよく画面を見てみると、、、

リビジョン1033件

そこでもしやと思い、リビジョンを削除してみたら、見事に解決!!

ぼくが使ったのは『Optimize Database after Deleting Revisions』というプラグイン

使い方は、この記事を参考にしてください(^o^)/
【わかりやすい】WordPressプラグインで手軽にリビジョンを削除する方法

リビジョン1000も溜めたらエラーも出るって話なんですね(汗)

身を持って実感しましたwwwwww

まとめ:自分である程度状況を見極めて、重大なエラーを解決しましょう!

WordPressは

  • WordPress本体
  • テーマ
  • プラグイン

から出来てます。

こう書くと単純に見えるかもですが、実は複雑に作用し合っている。

だからエラーが起きたとき、何が原因かを特定するのは、けっこう難しい場合があります。

まさかリビジョンだったとは。。。

この記事が、ほんの少しでもお役に立てたら、嬉しいです。

それでは(^o^)/

記事執筆:スティーブ

-ブログの困ったを解決, 雑記
-