Home > MT > 年別アーカイブページの作成

年別アーカイブページの作成

  • Posted by: モトヲ
  • 2005年3月24日 20:02
  • MT

先に紹介したArchiveLoadプラグインArchiveYearプラグインを利用して、年別アーカイブ(サンプル参照)を作成する手順を紹介したい。

下準備...

まずは新しいアーカイブ・テンプレートを作成する。この時点ではまだ空っぽでも構わない。

空の状態で保存したら、ウェブログの設定::アーカイブの設定で、今作成したテンプレートを月別アーカイブとして紐付ける。

紐付いたアーカイブ・テンプレートのファイル命名ルール(アーカイブ・ファイルのテンプレート)には、以下のように設定するのが吉。

<$MTArchiveDate format="%Y/index.html"$>

これにより、当ブログであれば、

http://blog.motoo.net/archives/2005/index.html

といったURIにて閲覧できるようになる。

これにて下準備はOK。

年別のエントリー一覧を作成する

ArchiveLoadプラグインの提供元にもサンプルがある。

  1. <MTArchiveYear>
  2. <MTArchiveYearIfEntries><p>
  3. <MTArchiveLoad>
  4. <MTEntries>
  5. <a href="<$MTEntryPermalink$>"><$MTEntryDate format="%B %e"$>: <$MTEntryTitle$></a><br />
  6. </MTEntries>
  7. </MTArchiveLoad>
  8. </p></MTArchiveYearIfEntries>
  9. </MTArchiveYear>

軽く説明すると、
(後半はタグを閉じているだけなので省略)

  1. 年単位で、1~12月の日付コンテクスト(YYYYMM)を作成する。
  2. 当月のエントリーが存在すれば...。
  3.  当月のエントリーリストをロードする。
  4.  エントリーコンテナ開始。
  5.  エントリーの日付、タイトルを表示。

という流れになる。2行目の「当月のエントリーが存在すれば...。」という部分は、ArchiveYearプラグインの本来の目的が「カレンダーを作成する」というものなので、エントリーが無ければテーブルを作成しないためのものである。よって省略しても構わない。

ま、てな感じで、

February 27: 友達を増やす努力、減らさない努力、継続する努力。
February 28: VISAも非接触式ICカードに参入するらしいよ。
March 02: うぉ!?ウィルコムから新しいPHSが!?
March 04: 料理屋で見かけた人々。

といった月をまたいでのエントリーリストが取得できる。

前年/翌年へのリンクを設置

<MTArchiveYearPrevious>
<a href="<$MTArchiveDate format="/archives/%Y/index.html"$>">&laquo; <$MTArchiveDate format="%Y"$></a>
</MTArchiveYearPrevious>

特に説明しなくとも良いかもしれないが、<MTArchiveYearPrevious>にて前年エントリーリストコンテナを作成して、その中でリンクを設置するだけである。もちろん前年のエントリーが存在しない場合は表示されない。月別アーカイブの前月/翌月へのリンクと同様である。

翌月リンクは、上記と同様に。

<MTArchiveYearNext>
<a href="<$MTArchiveDate format="/archives/%Y/index.html"$>"><$MTArchiveDate format="%Y"$> &raquo;</a>
</MTArchiveYearNext>

である。

トップページに年別アーカイブへのリンクを設置する

年別アーカイブが追加されるのは年に一度なので、メインインデックスのテンプレートに直接リンクを設置しても構わないが、一応全自動対応へ。(thanx CHITATOPOPS

  1. <MTArchiveList archive_type="Monthly">
  2. <MTArchiveDateHeader>
  3. <li><a href="<$MTArchiveDate format="/archives/%Y/index.html" $>">
  4. <$MTArchiveDate format="%Y" $></a></li>
  5. </MTArchiveDateHeader>
  6. </MTArchiveList>

ここで利用しているArchiveDateHeaderプラグインは、

  • 月別アーカイブコンテナ内で使用した場合、新しい年が出現し場合にのみ出力
  • 週別アーカイブコンテナ内で使用した場合、新しい月が出現し場合にのみ出力
  • その他で使用しても出力されないよ

というもの。

最後に...

たかだか年別のアーカイブを作成するのに要するプラグインは3つ。えっ! 3つも!? と思われるかもしれないが、それぞれのプラグインは10行~30行の超単機能なもの(ArchiveYearを除く)。なので、まとめて1つのプラグインとして公開してもいいかな...なんて思わなくも無いが、それはまた気が向いたら...。



Comments:1

meiico 2009年8月31日 16:36

こんにちは。
大変参考にさせていただきました。

実はMT4.2でも同じように年別アーカイブを作成したいのですがうまくいきません。
この記事はMT3のときのものですよね…?

MT4.2でも同様に表現することはできますでしょうか…
ご存知でしたら教えてください。

Comment Form

Trackbacks:2

TrackBack URL for this entry
http://blog.motoo.net/mt-tb.cgi/363
Listed below are links to weblogs that reference
年別アーカイブページの作成 from motooLogue
年別アーカイブの作成 from ponta web. 2005-10-30 (日) 00:43
ぽんたうぇぶも手打ち更新時代から数えると、一応2年10ヶ月前くらいからやっている...
年別アーカイブの作成 from ponta web. 2005-10-30 (日) 00:44
ぽんたうぇぶも手打ち更新時代から数えると、一応2年10ヶ月前くらいからやっている...

Home > MT > 年別アーカイブページの作成

Search
Advertisement
BlogParts
Feeds
CC Licence

Creative Commons License

このブログはクリエイティブ・コモンズでライセンスされています。

Return to page top