経緯
この Web サイトは WordPress で運用していますが、
2020年4月30日くらいから、個別投稿ページがすべてアーカイブ扱いになってしまいました。
え?なんでなんで??
WordPress を再インストールしても、テーマを変えても、
1ヶ月前のバックアップにフルリストアしても全然戻りません。
#上記で戻らなかったので、テーマに起因するものではなく、
WordPress 本体の問題の可能性が高いとアタリがつきました。
原因
アタリを付けたところで Twitter で検索してみると、WordPress version 5.4.1 から、
個別投稿ページ(single)のパーマリンク(≒ URL)に、日付が入っているとアーカイブ扱いになるとの事。
Query: Ensure that only a single post can be returned on date/time based queries.
うちの場合、「/20200504_wordpress_single_archive_miss/」みたいなパーマリンクにしているので直撃です。
め、迷惑すぎる・・・・
変更の理由としては、セキュリティ向上のため(非公開投稿が見えるようになっていた)とからしいのですが、
マイナーバージョンアップでそんな根本的な仕様変えるんじゃねえよバーカ!!!って感じです。
対処
/wp-includes/class-wp-query.php の該当部分を追加すれば、もとの状態に戻りますが、
自動バージョンアップのためにコレをしなければならなくなります。
これはバグじゃなくて仕様だからです。
我々みたいな使っているだけの人間は仕様変更の決定に付き従う他ありません。
(もしくは使うのを辞めるか。)
で、だ。そもそもパーマリンクに日付を入れるのは NG だったらしいので、
サイトのパーマリンク設計を見直さねばなりません。
#じゃあ出来ないようにしておけよヽ(`Д´)ノ
パーマリンク設定を変えざるを得なくなった訳ですが、困ったことに
外からリンクを張って頂いているところからはリンク切れを起こします。
Google 様の検索結果からのアクセスも同じくです。
幾つかのアクセスの多い記事はリダイレクト処理をしましたので良いのですが、
100近い投稿を全部リダイレクトするのはなかなか困難で間に合いません。
今後、2020年04月以前の記事が 404 not found になってる可能性が高いです。
この駄文みたいなページばかりなのでご迷惑をおかけすることは少ないと思うのですが、
「せっかく来てやったのに404 not found になってるぞ!」というページがありましたら、
お手数をおかけいたしますが、Twitter とかで教えて下さい。。。
これだからセキュリティ意識が過剰に高い人たちは・・・(ブツブツ
Special Thanks
wordpressでパーマリンクに年月日時分秒を使ってて、個別ページがアーカイブページになっちゃった人、とりあえずソースコードのこの部分だけ戻せばなんとかなる。ただ、将来的に何か対策は必要。https://t.co/nEuLavDo10
— なかけん88 (@nakaken88888888) May 2, 2020
ありがとうございます。