WordPressでスラッグが自動で変更される場合の対処
WordPressでスラッグが自動で(勝手に)変更される場合の対処について、情報展開します。
1.問題点
固定ページなどで「スラッグ」に「news」と設定しました。が、自動保存されたあとのパーマリンクの末尾が「news」ではなく、「news-2」になってしまいます。
また、公開後は「スラッグ」の内容も「news-2」に変更されてしまいます。「スラッグ」の内容を「news」に戻しても変更できません。
2.原因と対処
「news-2」「news-3」という風に、末尾に番号が付与されるのは、同じスラッグの記事がすでに存在しているのが原因です。
スラッグを変更できるようにするには、同じスラッグの記事のスラッグ名を変更するか、その記事が不要であればゴミ箱に移動したあと、完全に削除します(下)。
完全に削除しないと同じスラッグが存在しているとみなされます。
3.真の原因
そもそも、スラッグの末尾に番号が自動付与されて「あっ」と思ってしまうのは、次のような操作手順が原因ではないかと思われます(私がそうでした)。
- 記事にスラッグとタイトルを入力する
- 自動で下書き保存される
- その記事を使わずに「新規作成」をクリックする
WordPressではタイトルを入力して、そこからフォーカスが外れると「下書きを保存しました」というメッセージを表示し、記事データがデータベースに保存されます。
つまり、この「データベースに保存される」という動作を把握していなかったのが問題を発生させた真の原因です。
普段MTを使っているせいもありますが、MTでは「保存」をクリックしない限り正式なデータとして保存されないので、そこで勘違いしてしまったようです。
なお、スラッグの末尾に番号が自動付与されるのは全然構いませんが、スラッグを変更して保存または更新したときに
- 「同一スラッグ名の記事があるので変更できませんでした」
みたいなメッセージを出してくれるといいかもしれません。そうすると表示するメッセージに枚挙に暇がなくなるかもしれませんが。
4.マルチサイトで変更ができない
話がそれますが、調べていたところ「カテゴリスラッグはマルチサイトモードでは変更できない」という記事を見つけましたので備忘録で掲載しておきます。