📃

【Movable Type】年別(月別)アーカイブ一覧を出力する

2025/01/08に公開

概要

管理画面「記事」あるいは「コンテンツデータ」で投稿された記事の年別または月別アーカイブ一覧を出力する方法。PowerCMSも同様(コンテンツデータはMTのみ)
使用できるモディファイアは、最低限覚えておくとよいもののみ記載しています。

基本構造

<mt:ArchiveList type="[アーカイブタイプ]">
  ここに記述した内容がループ出力される
</mt:ArchiveList>

<mt:ArchiveList></mt:ArchiveList>で囲った内容がループ出力される。
以下の例では、年別アーカイブ一覧を出力しています。

<!-- MTML -->
<mt:ArchiveList type="Yearly">
  <mt:ArchiveListHeader>
    <h2>年別アーカイブ一覧</h2>
    <ul>
  </mt:ArchiveListHeader>
      <li><a href="<$mt:ArchiveLink$>"><$mt:ArchiveDate format="%Y年"$></a></li>
  <mt:ArchiveListFooter>
    </ul>
  </mt:ArchiveListFooter>
</mt:ArchiveList>

<!-- 出力結果 -->
<h2>年別アーカイブ一覧</h2>
<ul>
  <li><a href="年別アーカイブリンクurl">2025年</a></li>
  <li><a href="年別アーカイブリンクurl">2024年</a></li>
  <li><a href="年別アーカイブリンクurl">2023年</a></li>
</ul>

また、以下の例では月別アーカイブ一覧を年ごとにまとめる形で出力しています。

<!-- MTML -->
<mt:ArchiveList type="Yearly">
  <mt:ArchiveListHeader>
    <h2>年別(月別)アーカイブ一覧</h2>
    <dl>
  </mt:ArchiveListHeader>
      <dt><$mt:ArchiveDate format="%Y年"$></dt>
  <mt:ArchiveList type="Monthly">
    <mt:ArchiveListHeader>
      <dd><ul>
    </mt:ArchiveListHeader>
      <li><a href="<$mt:ArchiveLink$>"><$mt:ArchiveDate format="%b月"$></a></li>
    <mt:ArchiveListFooter>
      </ul></dd>
    </mt:ArchiveListFooter>
  </mt:ArchiveList>
  <mt:ArchiveListFooter>
    </dl>
  </mt:ArchiveListFooter>
</mt:ArchiveList>

<!-- 出力結果 -->
<h2>年別(月別)アーカイブ一覧</h2>
<dl>
  <dt>2025年</dt>
  <dd><ul>
    <li><a href="年別アーカイブリンクurl">1月</a></li>
  </ul></dd>
  <dt>2024年</dt>
  <dd><ul>
    <li><a href="年別アーカイブリンクurl">12月</a></li>
    <li><a href="年別アーカイブリンクurl">11月</a></li>
    <li><a href="年別アーカイブリンクurl">10月</a></li>
  </ul></dd>
</dl>

この場合、実際のアーカイブリンク出力は月別のみですが、あらかじめ記事リストアーカイブで年別のアーカイブマッピングも作成・公開しておく必要があります(公開しておかないと再構築時にエラーになる)
この場合のアーカイブマッピングは、ひとつの記事リストアーカイブテンプレートに対して年別・月別両方を設定します。

とりあえず覚えておくといいモディファイア

以下はを出力させる際、最低限覚えておくといいもの。

typeまたはarchive_type

出力するアーカイブの種類を指定する。

以下は一例です。これ以外のものは公式リファレンスをご確認ください。

  • Yearly(年別)
  • Monthly(月別)
  • Category-Yearly(カテゴリ年別)
  • Category-Monthly(カテゴリ月別)
  • ContentType-Yearly(コンテンツタイプ年別)
  • ContentType-Monthly(コンテンツタイプ月別)
  • ContentType-Category-Yearly(コンテンツタイプカテゴリ年別)
  • ContentType-Category-Monthly(コンテンツタイプカテゴリ月別)

content_type

type(またはarchive_type)で指定するアーカイブの種類がコンテンツタイプの場合、コンテンツタイプの以下いずれかを指定する。

  • 名前
  • ID
  • ユニークID

sort_order

出力するアーカイブの順番をascend(昇順)かdescend(降順)で指定する。初期値はdescend

lastn

出力するアーカイブの数を指定する。このモディファイアの指定がなければ、すべて出力する。

一緒に覚えておくといいMTタグ

記事一覧出力時に一緒に覚えておくといいMTタグたち。<mt:ArchiveList>~</mt:ArchiveList>タグ内で使用する。

MTArchiveTitle

記事リストアーカイブのタイトルを表示する。表示されるタイトルは、アーカイブの種類に依存する。

MTArchiveDate

出力するアーカイブの日付を表示する。
formatモディファイアで書式の選択が可能
参照:http://www.movabletype.jp/documentation/appendices/date-formats.html

作成するアーカイブマッピングの設定に応じて、記事リストアーカイブのリンクを絶対URLで出力する。

MTArchiveListHeader

ループ出力の一番はじめのときだけ実行されるブロックタグ。

MTArchiveListFooter

ループ出力の一番最後のときだけ実行されるブロックタグ。

MTIfArchiveType

type(またはarchive_type)モディファイアで指定したアーカイブの種類でテンプレートが出力(処理)される場合に実行するブロックタグ。

<mt:IfArchiveType type="Monthly">
  <!-- アーカイブの種類が「月別」のテンプレートの場合に出力(処理)される内容 -->
</mt:IfArchiveType>

公式リファレンス

MT

PowerCMS

Discussion