WordPress の URL構造を決めるのが、パーマリンク設定やスラッグです。
これらを途中で変えた場合、もちろん URL が変わってしまうので、変更前の URL ではページが見れなくなってしまいます。
この問題を解決する方法がリダイレクトなのですが、WordPress には標準でリダイレクト機能が付いています。
ただし、このリダイレクト機能には一定の条件がありますので、以下でご紹介しておきます。
カスタム構造以外
変更前 | 変更後 | リダイレクト |
---|---|---|
基本 | 日付と投稿名 | 可能 |
基本 | 月と投稿名 | 可能 |
基本 | 数字ベース | 可能 |
基本 | 投稿名 | 可能 |
日付と投稿名 | 基本 | 不可 |
日付と投稿名 | 月と投稿名 | 可能 |
日付と投稿名 | 数字ベース | 可能 |
日付と投稿名 | 投稿名 | 不可 |
月と投稿名 | 基本 | 不可 |
月と投稿名 | 日付と投稿名 | 可能 |
月と投稿名 | 数字ベース | 可能 |
月と投稿名 | 投稿名 | 不可 |
数字ベース | 基本 | 不可 |
数字ベース | 日付と投稿名 | 不可 |
数字ベース | 月と投稿名 | 不可 |
数字ベース | 投稿名 | 不可 |
投稿名 | 基本 | 不可 |
投稿名 | 日付と投稿名 | 可能 |
投稿名 | 月と投稿名 | 可能 |
投稿名 | 数字ベース | 可能 |
カスタム構造の場合
変更前 | 変更後 | リダイレクト |
---|---|---|
/%category%/%postname%/ | /%postname%/ | 可能(子カテゴリがない場合) |
/%category%/%postname%/ | /%post_id%/ | 可能 |
/%category%/%postname%/ | /%category%/%post_id%/ | 不可 |
/%category%/%post_id%/ | /%postname%/ | 不可 |
/%category%/%post_id%/ | /%post_id%/ | 不可 |
/%category%/%post_id%/ | /%category%/%postname%/ | 不可 |
/%postname%/ | /%category%/%postname%/ | 不可 |
/%postname%/ | /%category%/%post_id%/ | 不可 |
/%post_id%/ | /%category%/%postname%/ | 不可 |
/%post_id%/ | /%category%/%post_id%/ | 不可 |
カテゴリスラッグ
カテゴリスラッグは変更しても、自動リダイレクト機能が効きます。
ただし、カテゴリ一覧へのリンクは変わってしまうので、各種テンプレートなどでパスを指定している場合は、注意が必要となります。
まとめ
上の表を見てもらえばわかる通り、自動リダイレクトが効かない場合もあるので、基本的には「パーマリンク設定やスラッグは、最初に決めたものから変更しない」というのが一番良いですね。