WordPressが5.4にバージョンアップし、これまで問題なく開けていたブログの記事が、アーカイブリストになりその先が開けなくなってしまいました。
原因を調べてみると、URL設定が原因のようでした。
当サイトの場合は、この先々の事を考えてURLが変わらないように…と、記事URLは「年-月-日-時分秒」になるように設定していました。
ですが、パーマリンクの構造は必ず %post_id% あるいは %postname% で終了させるように…となっているため、私の設定では開けなくなってしまったということのようです。
また、この先もこの問題は修正されないであろうとの見方が多かったので、当サイトとしてはやむなくURLを変更することにしました。
私の知人の方にも同様の問題に直面されている方がいたので、今回の作業の流れを忘備録として記事に残しておきます。
ちなみに、記事数が700ちょいの別サイトだと30~40分程度の時間で作業が終わりました。
…が、このサイトの記事数は4500越えなので、今、家事の合間にちまちま準備してますヾ(´ε`;)ゝ(汗)
1.まずは記事を見れるようにする。
これについては、ブログのバージョンをダウングレードさせるだけでいいです。
便利なプラグインもあるのでとても簡単にできます。
「WP Downgrade」というプラグインをDL・インストールをします。
ダッシュボードの「設定」→「WP Downgrade」へと移動し、「WordPress Target Version」の部分に「5.3.2」と入力して保存します。
すると、ページの最下部に黄色枠の中に「Up-/Downgrade Core」のボタンが出るのでクリックして、その後、WordPressの更新ページに移動すると、5.3.2に更新できるようになります。
これでダウングレードは完了なので、元通りに見ることができました。
2.「.htaccess」でURL転送の準備をする。
「List Urls」というプラグインをDL・インストールをします。
ダッシュボードの「ツール」→「List Urls」へと移動し、「Download CSV」をクリックしCSVを取得します。
取得したCSVファイルを開くと、記事タイトル・URL・記事IDなどが一覧になって表示されます。
このファイルを利用すると、URL変更時のURL転送を行うための「.htaccess」用のデータが作りやすくなります。
(私はExcelと秀丸エディタの置換検索を利用して一気に作成しました。)
旧URL設定 : 年-月-日-時分秒(/%year%-%monthnum%-%day%-%hour%%minute%%second%/)
新URL設定 : 年-月-日_記事ID(/%year%-%monthnum%-%day%_%post_id%/)
私はこのURLに変更するので、旧URLから新URLに転送されるように「.htaccess」に転送設定を書き込みます。
※既にサーバーに.htaccessファイルがある場合は追記を、無い場合は新規作成して下さい。
Redirect permanent■[旧URL(https~.com迄は不要)]■[新URL(httpsから)]
と記入しますが、■の部分を半角スペースに変えて下さい。(過去の参照記事もどうぞ!)
全記事分記入するので、全記事を転送させるとなるとこれが一番大変です(笑)
(1行に1ページなので、改行して次のページ分を記入します。)
【記入例】※hが全角になってます。実際には半角で記入して下さい。
Redirect permanent /2020-05-21-000000/ https://***/2020-05-21_123/
Redirect permanent /2020-05-21-000001/ https://***/2020-05-21_456/
Redirect permanent /2020-05-21-000002/ https://***/2020-05-21_789/
全部できたら、サーバーに転送します。
3.ブログの記事URLを変更する。
ダッシュボードの「設定」→「パーマリンク設定」のカスタム構造を変更し、保存をクリックします。
これで、記事URLが変更されました。
念のため、旧URLにアクセスして転送されるか確認して下さい。
4.WordPressを最新版にする。
まずは、使い終わった「WP Downgrade」と「List Urls」プラグインを無効にします。
この先必要がなければサーバーから削除しちゃっても大丈夫です。
次に、WordPressの更新ページに移動すると最新版に更新できるので、アップデートさせて作業は終了です。