遅ればせながらPermalinkにしてみました。Permalinkというのは、WordPressでPermalinkを設定しないと、個別のポストやカテゴリーを見ているときのURIは”?p=123″みたいに”?”や記号が混じった物になるのですが、permalinkを設定すると”/archives/123″のように、普通のアドレスのようにしてくれるというものです。この方が色々検索エンジンとかの都合上良いようで、WordPressのもととなったブログソフトb2時代にもこれをハックとして使っている人がいました。なぜ今まで設定しなかったのかというと、設定したら今までのトラックバックや個別記事へのリンクがおかしくなるんじゃないかな?って思っていたのですが、実験してみたらどうやら変更してからでも”?p=123″としても”archive/123″の記事へとんでくれるみたいなので変更しました。でもこれをもし次に”/2005/6/28/123″という違うPermalinkに設定しなおしたら”archive/123″は見えなくなるみたいですけど・・・。
設定はアドミンエリアの”オプション”の”Permalink”から行います。これはmod_rewriteというのが使えるサーバでないと駄目なのと、WordPressのルートにある.htaccessというファイルを書き込み可能な設定(666とか)にしておかないといけません。使えない場合は、/index.php/というのを入れたら良いみたいです。(Apache以外)
使えるタグは以下の通り。

  • %year%
    記事の投稿された西暦年(4桁。例:2005)
  • %monthnum%
    記事の投稿された月を数字で(2桁。例:06)
  • %day%
    記事の投稿された日付(2桁。例:28)
  • %hour%
    記事の投稿された時間(2桁。例:15)
  • %minute%
    記事の投稿された時間の分(2桁。例:43)
  • %second%
    記事の投稿された時間の秒(2桁。例:33)
  • %postname%
    記事のタイトル(post slugに書かれたもの。日本語の場合だと文字化けというか変な記号の羅列で表示されます)
  • %post_id%
    記事のID(例:423)
  • %category%
    記事のカテゴリー。サブカテゴリーの場合は”メインカテゴリ/サブカテゴリ”のように表示される
  • %author%
    記事を書いた人の名前

注意点として

  • %postname%を使う場合
    %postname%だけをpermalinkに使うと、rewriteルールの同じようなページが表示されなくなるみたいで(wp-adminフォルダやスタイルシートなど)、permalinkを設定する時は必ず数字のアイテムも一緒に入れること。”/archives/%year%/%monthnum%/%day%/%postname%/”を使うのが無難みたいです。
  • %category%
    %category% はApache2以前のサーバだと正常に機能しないようなので、Apache1のサーバの人はこの %category% は使わないようにしましょう。
  • マルチカテゴリ記事の %category%
    %category% を使うと、複数のカテゴリを選択している記事はIDは一番低いカテゴリがURIで指定されますが、カテゴリリストから選ぶとURIで表示された以外で選択したカテゴリからも今まで通りみることができます
  • 必ず使う項目
    permalinkは個別記事のURIなので、個別記事を認識する%postname%か%post_id%を必ず最後に使います。

私の場合最初は、%postname%を使おうと思ったんですが、昔の記事とかはpost slugがアルファベットじゃないのとかもあって、アルファベットをわざわざ入力したのでも、日本語のタイトルと必ずしも一致する名前を入れたわけではなかったし、長たらしいかなと思ったので設定する画面の2つ目の例で出ている”archives/%post_id%”にしました。でも本当は一番使いたかったのは”%category%/%postname%”。でもうちはApache1なので諦めました。

2005-07-20
上の設定で1つ問題があったので、変更しました。最後にスラッシュ「/」を入れておかないと、記事をページで区切った時に2ページ以降がうまく表示されず”Not Found”になってしまいます。
archives/%post_id%/
というように最後にスラッシュ「/」を入れたらきちんと表示されましたので、設定時は気をつけてください。