WordPress の新しいテーマを購入したり、リニューアルでテーマを一新する際、テーマを変更したら一部記事が404エラーになってしまう原因について紹介します。
テーマを変更しただけで一部記事が404エラーになるという珍しい例だと思います。全部が404エラーになるわけではなく、一部のみというのが解決にややこしい所でした。
原因がわかってしまえば簡単なことでしたが、過去行ったカスタマイズを忘れてしまうとこのような事が起きてしまいます。
一部記事が404エラーの原因
WordPress のパーマリンク設定を連番にしていませんか?
連番というのは記事の URL が「https://webmist.info/1542/」というようになっているという事です。この連番が原因です。
WordPress の特性で、1000以降は年別アーカイブになるという特長があります。そのため投稿記事の URL が999までは正しく表示され、1000以降は404エラーになっていたのです。
WordPress の年別アーカイブを廃止するカスタマイズを行っていた事を忘れていて、新しいテーマを導入するとこういう事が起きます。
解決方法
新しいテーマでも年別アーカイブを廃止するカスタマイズを行えば OK です。
function remove_year_rewrite_rules( $date_rewrite ) { if ( $date_rewrite ) { foreach ( $date_rewrite as $key => $query ) { if ( ! strpos( $query, '&monthnum=' ) ) { unset( $date_rewrite[$key] ); } } } return $date_rewrite; } add_filter( 'date_rewrite_rules', 'remove_year_rewrite_rules' );
これをテーマの function.php に追記します。