WordPress5.3にバージョンアップしたら表示できない記事が多数。404 NOT FOUND の原因と対処方法がわかりました!

404 NOT FOUNDが発生 トラブル解消の話題
404 NOT FOUNDが発生

ブログの管理に使っているWordPressのバージョンを5.3にバージョンアップしたところ、一覧では見れている記事をクリックしても 404 NOT FOUND とだけ表示されてしまい、記事の続きを読めないという事態に陥りました。

WordPress5.3は2019/11/12にリリースされたばかりの最新バージョン、リリース1週間もしないうちにバージョンアップするのはリスクだと思いましたが、「まさかね。どうせいずれはアップグレードしるし・・・」と思ったのが運の尽き、やはりトラブルに遭遇してまったのでした。

問題が起きないページもある

少々やっかいなのが、この「404 NOT FOUND」というエラーは全ての記事で出るわけではないというところです。新しい数記事は普通に見ることができていたので最初は全く気付かず、リンクを貼ろうと思って確認した過去記事で 404 NOT FOUND になっていることを知ったのでした。

Word Press をバージョン5.3に変えた人は、404 NOT FOUND になる記事がないか確認してみましょう!

そもそも「404 NOT FOUND」ってどんなエラー?

記事リストから記事の続きを見ようとしたところ404 NOT FOUNDで見れませんでした
記事リストから記事の続きを見ようとしたところ404 NOT FOUNDで見れませんでした

ところで、404 NOT FOUND とは何かを解説しておきます。

インターネットの世界では、URLを間違えるとページが無いので記事を見ることができません。リンク切れも同じ現象です。

これが404 NOT FOUND という状態です。URLを打ち込んだ(またはリンクをクリックしたけど)「ページが見つからなかった。(Page not found)」ということです。

WordPressに投稿した記事が本当になくなってしまったわけではない!

WordPressで投稿したページなので、実際は存在するにも係わらずページが見つからないというエラーになってしまっているわけです。

投稿画面だとその記事を編集できるので、完全にページがなくなってしまったわけでは無いのが救いです。

あるはずの記事が表示できなくなった原因がわかった!

記事のURLを整理

記事のIDであれば投稿が表示できることがわかりました。例えば記事IDが9451なら、「https://blog.felt-life.info/myreport/?p=9451」というURLになります。

私のブログではパーマリンクの構成を「日付と投稿名」としているので、先ほどの記事ID9451の投稿のURLは「https://blog.felt-life.info/myreport/2019/10/27/tanka-de-ranking-men-example/」になっています。

今は調整済みなので問題なく記事を表示できますが、WordPress 5.3にバージョンアップした直後は 404 NOT FOUND となって記事が表示できない状態でした。

記事の日付が原因

「記事IDのURL」なら表示できるので記事が公開されている状態なのは間違いありません。ところが「日付と投稿名のURL」だと表示できないとなれば、日付か投稿名に問題があることは間違いありません。

投稿名は投稿者が自分でつけた名前なので間違いにくいですし、間違ってもいませんでした。

しかし、記事の公開日付が2019年10月27日 1:33だったにも係わらず、URLの日付部分が「2019/10/26/」となっていることに気付きました。

ためしに「2019/10/27/」と変更すれば記事が表示できるので、WordPress 5.3にバージョンアップしたことで、記事の日付をURLにする機能に不具合が生じている様でした。

公開時間が0:00〜8:59の記事で不具合が発生!

普通に表示できる記事と表示できず404 NOT FOUNDになる記事を見比べていると、表示できる記事は9:00〜23:59の公開日付、表示できない記事は0:00〜8:59の公開日付であることが分かりました。

日本はグリニッジ標準時(GMT)+9時間です。日本時間で公開した記事なので、公開日付は日本時間の1:33だったのですが、もしURLを作るときに標準時に直してしまうと10/27 1:33 は10/26 16:33になるので、URL中の日付が26日になってしまっている可能性があります。

試しにWordPressのデータを編集してみると(知識があるとデータを直接修正できる)、記事の公開日を10/27 9:00にすれば記事が表示でき、10/27 8:59にすると記事が表示できないことが確認できました。

これでWordPress 5.3にしたことで、記事のURLは日本時間で作られるのに、記事のリンクはグリニッジ標準時で作られてしまう不具合が発生したことが原因で 404 NOT FOUND となってしまったことがわかりました。

使用しているテーマによって不具合が起きている可能性がある

私のブログはWordPressのマルチサイトという機能を使っています。1つのWordPressで複数のブログをまとめて管理できる仕組みです。

全て同じWordPressで動いているので全てのサイトで公開日付問題が起こるかと思えば、そうではありませんでした。

WordPressは同じとなると違いは有効にしているプラグインとテーマくらいです。

マルチサイトで問題が起きるサイトと起きないサイトがあるということは、WordPress 5.3とテーマの組み合わせで不具合が起きる可能性があります。

テーマによって不具合が起きているというのはあくまで可能性ですが、一応 404 NOT FOUNDが起きていたサイトのテーマをまとめておきます。

  • 404 NOT FOUNDが起きたテーマ
    CocoonXeoryBase
  • 正常に表示できたテーマ
    Twenty TenTwenty ElevenTwenty Twelve

WordPress標準のテーマが問題なくて、サードパーティーのテーマが問題ありという結果は、偶然かもしれませんがテーマによって不具合が起きるという線もあり得る話しですね・・・。

いずれにしても、WordPress 5.3に更新した際には0:00〜8:59に公開した記事が記事一覧のリンクから記事のページを開いてみて 404 NOT FOUND にならないことを確認する様にしましょう。

日付を変更して保存すれば直る

さて、ここまででWordPress 5.3で記事が 404 NOT FOUND になってしまう原因を説明してきましたが、ここからが肝心の「404 NOT FOUND の直し方」です。

404 NOT FOUNDになってしまう投稿を、WordPressの管理画面から編集で開きます。文書の公開日付を同じ日の9:00以降に変更して更新すれば、過去のパーマリンク(URL)が変わること無く、404 NOT FOUNDを解消できます。

ところで、公開日付を変更して更新を押したら、変更した更新日付でない日付になってしまいました。

どうやら9時間が引かれた日付になってしまう様子・・・。やはりグリニッジ標準時と日本時間の時差が関係している模様です。

更新した瞬間公開日から9時間マイナスされた
更新した瞬間公開日から9時間マイナスされた

さらにやっかいなのが、更新のタイミングで9時間引かれた日付になり、一覧などに表示される記事のリンクはさらに9時間引かれた日付でURLが作成される様です。

まあ、ここは記事の404 NOT FOUNDが解消できれば良いと割り切って、記事の登録や更新後に表示されている公開日付が、公開日当日の9:00〜23:59となる様にしましょう。

まとめて記事の公開日付を変える方法は必要ですか?

この日付を変更する方法は、WordPressの投稿を編集する画面で1記事ずつ確認しては更新する作業を繰り返す必要があります。

WordPressのデータを直接修正する経験や知識がある方なら、まとめて直す方法もあるのでご要望があれば記事にまとめようと思います。(上級編)

コメント

タイトルとURLをコピーしました