WordPressではスラッグが重複した場合に末尾に「-2」をつけて回避する仕組みになっています。
現在作っているサイトでどうやっても「-2」がついてしまって解決できなかったので、一般的な解決方法と、どうやっても解決できない事例を紹介します。
数字のみのスラッグには末尾に「-2」が付く
今回僕が遭遇した末尾に「-2」が付くパターンは、数字のみのスラッグで起きていました。
いろいろ調べてみたんですが、数字のみのスラッグの場合はどうやっても末尾に「-2」が付くという仕様らしいです。
僕は普段、パーマリンク設定を「投稿名」にして毎回ユニークなスラッグをつけているため、数字のみを入力するケースがなくて気づかなかったんですね。
ちなみに、パーマリンク設定を記事IDにしていたとしても「post-数字」という具合に数字のみの表示にはなりません。
なので、数字のみのスラッグは付けないようにする、もしくは数字の末尾に「-2」が付いても気にしない、の2択しかないようです。
一般的な「-2」を回避する方法
数字のみのスラッグでない場合でも末尾に「-2」が付く場合があります。
その場合は「同一のスラッグの投稿が他にもある」のが原因なんですが、いくら探しても同じスラッグの投稿が存在しないのに末尾に「-2」がついてしまうことがあります。
その場合の回避方法が下記の通りです。
下書きやゴミ箱を確認する
公開された記事だけでなく、下書きの記事や、ゴミ箱の中に入っていたとしても重複していると判定されてしまいます。
WordPressは投稿を削除しただけでは完全に削除されずにゴミ箱に入りますので、ゴミ箱の中に入って「完全に削除」をすることでようやくその記事が存在しないことになります。
下書きやゴミ箱の中を確認し、スラッグを変更するか完全に削除するかの作業をしましょう。
リビジョンを削除する
WordPressでは自動保存機能が働いて、リビジョンというバックアップのようなものが残ります。
このリビジョンが残っていることで過去に同一のスラッグが存在している場合に重複している判定になってしまうことがあるようです。
記事がわかる場合はその記事のリビジョンを削除しにいくか、WP-Optimizeのようなリビジョンを削除できるプラグインを使用しましょう。
プラグインを使う場合、リビジョンを全て削除するしか選択肢がなかったりしますので、リビジョンが必要な場合にはプラグイン選択を慎重に行う必要があります。WP-Optimizeは一括削除しかできませんでした。
メディアライブラリに同一の名前のファイルがある
メディアライブラリに同一の名前のファイルがある場合にも投稿に影響を与えることがあるようです。
僕は記事のスラッグと同名のファイルをアイキャッチ画像に設定しているので、この理屈で言えば毎回スラッグが重複していると判定されてもおかしくないんですが、僕の環境ではこの問題は起こっていません。
この情報はネットで調べただけのもので僕は再現ができませんでした。もしかしたらパーマリンク設定によっては起こる事象かもしれません。原因の一つとして頭の片隅に入れておく程度で良いと思います。
最後に
現在タダオトというサイトのリニューアルを行っており、WordPressで運用するにあたって今回紹介した現象にぶち当たり、現在のURLをそのまま流用することができないことが確定しました。
ちょっと手間ではありますが、元のURLは全て控えてあるのでリダイレクト処理でなんとかするしかなさそうです。
もしくはこの機会にコンテンツの見直しをして必要なものだけを新たにアップロードするのでも良いかもしれません。
今後の運用を含めて考えてみたいと思います。