ワードプレス:エラー"post_status" on nullの解決 | I'mBay

ワードプレスで発生した謎の「post_status」on nullエラー:原因と解決策

WordPressでカスタマイズ画面を開いた時、突然こんなエラーが表示されたことはありませんか?

Warning: Attempt to read property “post_status” on null in /◯◯/◯◯/◯◯/public_html/wp-admin/includes/template.php on lineXXXX


一見、テンプレートファイル(template.php)に問題があるように見えますが、実は別の原因が潜んでいる可能性があります。

筆者もつい最近、このエラーに遭遇し、解決策を見つけるのにかなり苦労しました。今回は、このエラーの解決過程と原因、そして解決策を皆さんと共有したいと思います。

発生状況とエラー内容

このエラーは、WordPressのダッシュボードからカスタマイズ画面を開いた時に発生しました。表示・編集やカスタマイズなどはできるのですが、画面上部に上記のエラーメッセージが表示されたままなので解決しなければなりません。

原因特定の道のり

テンプレートファイル(template.php)に問題があるのではないかと考え、まず該当箇所を調べました。しかし、問題箇所は見当たらず、エラーの原因は特定できませんでした。

次に、フォーラムやブログなどで同様のエラー事例を調査しました。しかし、解決策は見つかりません。

意外な解決策

色々試行錯誤する中で、null ってことは、、、ないものを表示させようとしている。投稿記事をくまなく探しても見つけられません。
この場合、404エラーになるはずですから。

ということは固定ページ?と、メニューを確認してみました。
固定ページ一覧ではなく、カスタマイズ画面からメニューを全て確認しました。

すると、赤枠でエラー表示が出ている箇所が見つかり中を見ると空っぽ。
つまり「null」です!

見つけたぞ!まるで世紀の大発見をした気分?でした。

メニュー内の空っぽ(null)の固定ページを削除してみると、なんとエラーが消えたのです。
やっとです、3日かかりました。

考察と教訓

今回のエラーの原因は、固定ページメニューの削除によって、WordPress内部で予期せぬ処理が発生していたと考えられます。具体的には、削除されたメニューIDを参照しようとした際に、null値が返され、エラーが発生していたようです。

このエラーは、テンプレートファイルに直接的な問題があるわけではなく、WordPress内部の処理に起因するものでした。そのため、テンプレートファイルを修正しても解決しなかったのです。

まとめ

今回の経験を通して、WordPressでエラーが発生した場合は、必ずしもテンプレートファイルに問題があるとは限らないことを学びました。エラー内容をよく理解し、様々な可能性を検討することが重要です。

また、固定ページメニューの編集は、予期せぬエラーを引き起こす可能性があることもわかりました。メニューを編集する際は、十分注意する必要があります。