以前からPostスラッグの重複は出来なかったが、ver.2.3あたりからさらに重複に厳しくなってきた。 ver.2.7.1以降は以下の通り。
よって、たとえば以下のようなカテゴリ構成にしようとした場合、「plugin」「faq」スラッグが重複するため、「plugin-dokuwiki」「faq-dokuwiki」といった風にスラッグ名が強制的に変更される1)。
トップページ--+--ワードプレス(wordpress)--+--プラグイン(plugin)
| |
| +--FAQ(faq)
|
+--ドクウィキ(dokuwiki)--+--プラグイン(plugin)→plugin-dokuwikiに強制変更
|
+--FAQ(faq)→faq-dokuwikiに強制変更
以前は末尾に「-2」と付け足していく仕様だったが、ver.2.5以降は上位カテゴリのスラッグ名を追加して重複を避けるようになった2)。
なお、Simple Tagsプラグインでタグ名を変更した場合は「新しいタグを作った」とみなされ、カテゴリとタグの連動が切れる。
スラッグの重複規制が厳しくなる一方、ver.2.5以降はカテゴリIDやPost IDを管理画面に表示しなくなったので、「IDではなくスラッグで、サイト内コンテンツを一意に定めよう」という方向性と思われます。
Pageスラッグが昔のままなのはよくわからないけど、PostとPageは内部的にはほぼ同じだし5)、いずれは重複不可になるのかも。
実際のところ、以下のようなサイト構成の場合、
Drupal
features
docs
WordPress
features
docs
同じ「features」や「docs」であってもカテゴリが異なるわけだから、スラッグを「features-drupal」「docs-drupal」「features-wordpress」「docs-wordpress」という風に命名するのは理にかなってはいます。
むしろ、システム内のどこにあるかによって、コンテンツに同じ名前をつけれたりつけれなかったりする方がおかしいのかも。カテゴリ分けしているという事はすなわち内容や役割が違うという事で、ならばコンテンツ名は別であるべき。
…みたいな感じでスラッグをひねるより、
と出来る方がスマートだと思う。
ver.2.3以降のWordPressは、「1つのPC内で、フォルダ名やファイル名は一切重複出来ない」というのと本質的には同じです。理論的に正しくて有用でも、単純に使いにくいです。自分にとっては。
しかしおそらく「IDは一般的な利用ではあまり使われなくなっていく」「サイト内では、スラッグは重複しない」という大前提で本体やプラグインが開発されていくだろうから、WPを使うなら慣れるべきという事かと。あるいは、今のところ重複可能なPageだけでコンテンツを作るか。
Pageスラッグとカテゴリスラッグは、同じ名前をつける事が出来る。よって、サイト構成によっては、Pageとカテゴリが同じURLになる事がある。この場合、カテゴリスラッグが優先される。
「/?p=N6)は見苦しいから/category/post-name/のようなフレンドリーURLに変えるべき」という文章は公式サイトも含めてよく見かけるけど、「カテゴリIDが管理画面から見えなくなって困る」はかなり少なくなり(表示するプラグインはあります)、重複スラッグ名あたりになると、
が困っているぐらいで、全体的には大して問題になってない感じ。一応、http://core.trac.wordpress.org/ticket/5034やhttp://core.trac.wordpress.org/ticket/6211 にはなってますが、優先的に解決する気はなさそう。
実際、
という事なわけで。