WordPress 5.4.1 で「投稿」の個別ページが表示されない不具合

WordPressのバージョンを5.4.1に更新したところ、「投稿」の個別ページが表示されず、アーカイブページが表示される不具合が発生したので、その原因と解消方法をご紹介します。

「投稿」の個別ページが表示されなくなるケース

今回の「投稿」の個別ページが表示されなくなる不具合は、全てのWordPressユーザーで起こるものではありません。

不具合が起こるのは「パーマリンク設定」で、投稿ID (%post_id%) や投稿スラッグ (%postname%) を使用せず、年 (%year%) 月 (%monthnum%) 日 (%day%) 時 (%hour%) 分 (%minute%) 秒 (%second%) のみを使用した場合に発生します。

「投稿」の個別ページが表示されない不具合の解消方法

当サイトでは、これまで /%year%%monthnum%%day%%hour%%minute%%second% という「カスタム構造」のパーマリンクにしていました。

例えば、投稿された日時が2001年1月1日0時0分0秒なら、https://example.com/20010101000000 といったURLになります。

このパーマリンクはWordPress 5.4.0 まで、問題なく使用できていましたが、5.4.1 ではアーカイブページとして認識されてしまうようです。

そこで、/%year%%monthnum%%day%-%post_id% に変更したところ、正常に表示されるようになりました。

パーマリンクを変更する際の注意点

パーマリンクの変更自体は非常に簡単ですが、それまで使用していたURLでアクセスされると、404ページが表示されるようになってしまうだけでなく、サーチエンジンの検索評価もリセットされてしまいます。

なので、.htaccessによるリダイレクト処理を忘れずに行いましょう。

.htaccess による301リダイレクトの記述例
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^20010101000000$ 20010101-1 [L,R=301]
RewriteRule ^20010102000000$ 20010102-2 [L,R=301]
RewriteRule ^20010103000000$ 20010103-3 [L,R=301]
</IfModule>

個人的には、/%year%%monthnum%%day%%hour%%minute%%second% というタイムスタンプ形式のパーマリンクを (SEO的に良い悪いというのは抜きにして) 気に入っていたので残念です。

関連記事