日時のみのパーマリンクを使っているWordPressを 5.4.1 へアップデートすると、ブログ記事(投稿)が表示されず、アーカイブページが表示される状態になる。
バグではなく扱いが厳密になった
これは、パーマリンクの扱いが厳密になったことが原因。バグではない。
日時のみパーマリンクは、好ましくない形だった様子(私も初めて知った)で、たまたま動いていたが、非推奨な形だった。
日時パーマリンクとは、例えばこちらの設定。(私が出会ったトラブルは、この形だった)
/%year%-%monthnum%-%day%-%hour%%minute%%second%
参考にした記事はこちら。
“日時のみパーマリンク”は、はてなブログからWordPressに移行したケースで使われることが多い。
はてなブログのパーマリンクはスラッシュだが、ハイフンの形式にリダイレクトしていた(この設定を行っていたことが今回のトラブルで、皮一枚セーフになるとは)
パーマリンクには”ID”か”スラッグ”で終わる
構造は必ず %post_id% あるいは %postname% で終了し、各パーマリンクが個々の投稿を指すようにしてください (例 /%year%/%monthnum%/%day%/%postname%/ )。
https://ja.wordpress.org/support/article/using-permalinks/#%e3%82%a2%e3%83%bc%e3%82%ab%e3%82%a4%e3%83%96%e3%83%aa%e3%83%b3%e3%82%af%e3%81%a8%e3%81%97%e3%81%a6%e8%a7%a3%e9%87%88%e3%81%95%e3%82%8c%e3%82%8b%e3%81%ae%e3%82%92%e9%81%bf%e3%81%91%e3%82%8b
パーマリンクは、IDかスラッグで終わる必要があるとのこと。(ドキュメントを読んでないのが悪いのだが、、、できれば、パーマリンク設定の画面に、それを明示して欲しかったというのが本音だ)
リダイレクトして対応だが、したくない
通常の考え方だと、ID(もしくはスラッグ)へ、リダイレクトの設定を行うしかない。ただし、リダイレクトはリンク切れにはならないが、SEOではネガティブに働く場合もあるので、注意が必要で、できるだけ避けたい。
なお、リダイレクトするなら、こちらのプラグインを使って設定するのが良い。
リダイレクトは、やりたくない。では、どうするのか?
スラッグに入力することで解決
今回、ハイフン区切りの日時パーマリンクに設定していた。
/%year%-%monthnum%-%day%-%hour%%minute%%second%
そこで、各記事のスラッグに、この日時パーマリンクをそのまま登録した。
全記事のスラッグを登録完了した後に、WordPressの管理画面にあるパーマリンク設定を 投稿名 形式に変更して保存する。
https://example.com/sample-post/
これで、リダイレクトすることなく、トラブルを回避できる。