WordPressのURIを公開順で連番にする方法

WordPressでは記事に作成順でIDが付けられるのですが、このIDをそのままURIの一部として使うと困ることになります。

記事のIDは、データベースではauto_increment属性を持つフィールドに保存されているので、記事を削除した直後に新しい記事を作成した場合など、記事の総数は変わらなくともIDは加算されます。つまり、IDをそのままURIの一部として使うと、番号が飛び飛びになってしまう可能性があります。IDはページやアップロードしたファイルにも割り振られるので、途中でページを作成したり、ファイルをアップロードした場合にも連番でないURIになってしまいます。また、IDはあくまでも記事の作成順に割り振られるものなので、後に作成した記事を先に公開する場合にも気持ち悪いことになってしまいます。

気持ち悪いだけならいいですが、エクスポートしておいたデータをインポートした場合にはIDが改めて割り振られてしまうため、移転や再インストールの際に困ることになります。リンクしている記事のURIを全てチェック・修正して、外部からのリンクに対応するためにリダイレクトの設定をするはめになるでしょう。

そうならないように、WordPressには投稿スラッグというものがあって、記事ごとに設定しておくことで好きな名前をURIの一部として使うことができます。ただ、毎回、投稿スラッグを考えるのは面倒すぎるし、似た内容の場合にはどうするかとか、内容を変更した場合にはどうするかとか考えると悩ましいです。なにかいい方法がないかと思っていたら、同じようなことを考えている人がいました。

Liner Note - WordPressで公開順に投稿IDを振っていく方法」では、投稿スラッグに名前ではなく、公開順に番号を付けていく方法が紹介されています。この方法では、番号さえ付け間違えなければURIは公開順での連番になります。記事の作成順と公開順が異なる場合でも不都合がありません。投稿スラッグを考える必要がなく、移転や再インストールの際にもURIの整合性が保たれます。リンク先のページでは、投稿スラッグの入力を半自動化するハックも紹介されています。(フィードから最新の番号を取得するものなので、下書きや予約投稿を書きためている場合には使えません。)

既にこのブログでもこの方法でURIを設定していますがいい感じです :)

コメント (0)

この記事へのコメントはまだありません。

コメントフォーム

トラックバック (0)

この記事へのトラックバックはまだありません。

この記事のトラックバックURI
http://dxd8.com/archives/20/trackback/
この記事のURI
http://dxd8.com/archives/20/