- 2005年3月24日 20:02
- MT
先に紹介したArchiveLoadプラグインとArchiveYearプラグインを利用して、年別アーカイブ(サンプル参照)を作成する手順を紹介したい。
下準備...
まずは新しいアーカイブ・テンプレートを作成する。この時点ではまだ空っぽでも構わない。
空の状態で保存したら、ウェブログの設定::アーカイブの設定で、今作成したテンプレートを月別アーカイブとして紐付ける。
紐付いたアーカイブ・テンプレートのファイル命名ルール(アーカイブ・ファイルのテンプレート)には、以下のように設定するのが吉。
<$MTArchiveDate format="%Y/index.html"$>
これにより、当ブログであれば、
http://blog.motoo.net/archives/2005/index.html
といったURIにて閲覧できるようになる。
これにて下準備はOK。
年別のエントリー一覧を作成する
ArchiveLoadプラグインの提供元にもサンプルがある。
- <MTArchiveYear>
- <MTArchiveYearIfEntries><p>
- <MTArchiveLoad>
- <MTEntries>
- <a href="<$MTEntryPermalink$>"><$MTEntryDate format="%B %e"$>: <$MTEntryTitle$></a><br />
- </MTEntries>
- </MTArchiveLoad>
- </p></MTArchiveYearIfEntries>
- </MTArchiveYear>
軽く説明すると、
(後半はタグを閉じているだけなので省略)
- 年単位で、1~12月の日付コンテクスト(YYYYMM)を作成する。
- 当月のエントリーが存在すれば...。
- 当月のエントリーリストをロードする。
- エントリーコンテナ開始。
- エントリーの日付、タイトルを表示。
という流れになる。2行目の「当月のエントリーが存在すれば...。」という部分は、ArchiveYearプラグインの本来の目的が「カレンダーを作成する」というものなので、エントリーが無ければテーブルを作成しないためのものである。よって省略しても構わない。
ま、てな感じで、
February 27: 友達を増やす努力、減らさない努力、継続する努力。
February 28: VISAも非接触式ICカードに参入するらしいよ。
March 02: うぉ!?ウィルコムから新しいPHSが!?
March 04: 料理屋で見かけた人々。
といった月をまたいでのエントリーリストが取得できる。
前年/翌年へのリンクを設置
<MTArchiveYearPrevious>
<a href="<$MTArchiveDate format="/archives/%Y/index.html"$>">« <$MTArchiveDate format="%Y"$></a>
</MTArchiveYearPrevious>
特に説明しなくとも良いかもしれないが、<MTArchiveYearPrevious>にて前年エントリーリストコンテナを作成して、その中でリンクを設置するだけである。もちろん前年のエントリーが存在しない場合は表示されない。月別アーカイブの前月/翌月へのリンクと同様である。
翌月リンクは、上記と同様に。
<MTArchiveYearNext>
<a href="<$MTArchiveDate format="/archives/%Y/index.html"$>"><$MTArchiveDate format="%Y"$> »</a>
</MTArchiveYearNext>
である。
トップページに年別アーカイブへのリンクを設置する
年別アーカイブが追加されるのは年に一度なので、メインインデックスのテンプレートに直接リンクを設置しても構わないが、一応全自動対応へ。(thanx CHITATOPOPS)
- <MTArchiveList archive_type="Monthly">
- <MTArchiveDateHeader>
- <li><a href="<$MTArchiveDate format="/archives/%Y/index.html" $>">
- <$MTArchiveDate format="%Y" $></a></li>
- </MTArchiveDateHeader>
- </MTArchiveList>
ここで利用しているArchiveDateHeaderプラグインは、
- 月別アーカイブコンテナ内で使用した場合、新しい年が出現し場合にのみ出力
- 週別アーカイブコンテナ内で使用した場合、新しい月が出現し場合にのみ出力
- その他で使用しても出力されないよ
というもの。
最後に...
たかだか年別のアーカイブを作成するのに要するプラグインは3つ。えっ! 3つも!? と思われるかもしれないが、それぞれのプラグインは10行~30行の超単機能なもの(ArchiveYearを除く)。なので、まとめて1つのプラグインとして公開してもいいかな...なんて思わなくも無いが、それはまた気が向いたら...。
- Newer: 日本版ポリティカルコンパス
- Older: ArchiveYearプラグイン

