motooLogue

Icon

「どうせアタシなんかよりも○○○○の方が大切なんでしょ……」の○○○○を探してやまないアル中のブログ。

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

先に紹介した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つのプラグインとして公開してもいいかな…なんて思わなくも無いが、それはまた気が向いたら…。

Category: MT

Tagged:

SimilarPosts:

3 Responses

  1. ponta web. より:

    年別アーカイブの作成

    ぽんたうぇぶも手打ち更新時代から数えると、一応2年10ヶ月前くらいからやっている…

  2. ponta web. より:

    年別アーカイブの作成

    ぽんたうぇぶも手打ち更新時代から数えると、一応2年10ヶ月前くらいからやっている…

  3. meiico より:

    こんにちは。
    大変参考にさせていただきました。
    実はMT4.2でも同じように年別アーカイブを作成したいのですがうまくいきません。
    この記事はMT3のときのものですよね…?
    MT4.2でも同様に表現することはできますでしょうか…
    ご存知でしたら教えてください。

Leave a Reply

Ad

TranslateThis