WordPressでArchiveページを作成する

2016.10.29 (土)

WPではテンプレート(テーマ)を作成する際にテンプレート階層(優先順位)があるので、MT的な考え方でアーカイブテンプレートを作成できません。自分なりに好きなようにカスタマイズしたい場合は、作成工程をWPのルールに従って作成しないとダメです。ですので、ここでは、

  • スラッグを使ってオリジナルのアーカイブテンプレートを作成してしまう
  • WPタグといわれている標準のWP関数を使わずにWPのオブジェクトを使ってDBから直接データを取り込んで操作してしまう

という方法で進めます。完全に自由自在にカスタマイズするのだったらこの方法が一番簡単です。しかしWPの標準機能の方が安定しているし情報も多いのでそれほどでもないって方は通常のテンプレート作成方法(archive.php)で作成した方が無難です。
そもそもアーカイブってなんぞやという話でもあるのですが、アーカイブはアーカイブなので、

  • カレンダー
  • 年別アーカイブ
  • 月別アーカイブ
  • カテゴリー別アーカイブ
  • タグクラウド
  • 画像投稿があった記事にサムネイル集

ぐらいの感じで作ってゆく感じにします。各ウィジェットなどでこれらをパーツで作ることはとても容易なWPですが、1つのページになとめようと思うと結構難儀です。ですが、実際にアーカイブなんて使うのは管理人本人だけだったりするので特に必要ないといえばないです。特にリアルタイムのTwitter的ブログになると尚更です。

固定ページのスラッグでオリジナルアーカイブテンプレートを作成する

コテコテの完全カスタマイズができるページを作成する方法はいろいろありますが、固定ページのスラッグを使ったテンプレートを作成するのが一番よいと思っています。WPのテンプレートはちょっと特殊な規則性がたくさんあるからです。PHPを使ったフレームワークやCMSにはそういう設計にしているものがとても多いです。(勿論それが非常に合理的だからです。)
スラッグを使った固定ページを作成する方法は、

  1. 任意の固定ページを新規で作成する。
  2. その固定ページに半角英数字でスラッグを設定する。
  3. テーマ内に「page-[設定したスラッグ].php」というファイル名でテンプレートを作成する。
  4. それぞれのテンプレートから「(ブログのURL)/page-[設定したスラッグ].php」をリンクに設定する。

となります。