今年度の新着記事を出力する

昨日、twitterで@webbingstudioさんが以下のようなツイートをしていました。

全ての国産CMSは「年度別アーカイブ」を採用すべきだと思うのです。これだけで日本の需要がぐわしと上がるはず。MTやWPだと条件分岐でなんとかなるけど無駄が多い。

年度別アーカイブは、拙作のExtendArchivesプラグインでできるので、そのことをお知らせしました。
すると、さらに以下のツイートをいただきました。

@hjfuji おぉ(°Д° このプラグインですが、mtEntriesの条件モディファイアには使えないですよね。今年度分の新着記事だけ出してと言われたことがあるのです。流石に需要はほとんどないと思うのでmtIfで対応しましたが。

MTEntriesタグのモディファイアには使えませんが、ExtendArchivesプラグインにMTArchiveListタグとMTEntriesタグを組み合わせれば、今年度の新着記事を簡単に出力することができます。
その方法を紹介します。

1.MTArchiveListタグ

MTArchiveListタグはMovable Type標準のテンプレートタグで、名前の通りアーカイブのリストを出力するテンプレートタグです。
サイドバーに月別アーカイブの一覧を出力するような時に、このタグを使います。

MTArchiveListタグでは、archive_typeモディファイアを指定することで、アーカイブリストを出力するアーカイブのタイプを指定することができます。
また、lastnモディファイアで、出力するアーカイブの件数を指定することもできます。
例えば、以下のようにすると、最近6ヶ月間の月別アーカイブのリストを出力することができます。

<mt:ArchiveList archive_type="Monthly" lastn="6">
  アーカイブのタイトル等を出力する部分
</mt:ArchiveList>

拙作のExtendArchivesプラグインをインストールすると、年度別アーカイブは半期別アーカイブ等を作ることもできます。
また、MTArchiveListタグで、年度別アーカイブ等のリストを出力することもできます。
年度別アーカイブを出力する場合だと、archive_typeモディファイアに「FiscalYearly」を指定します。

2.MTArchiveListタグとMTEntriesタグを組み合わせる

MTArchiveListタグのブロックの中でMTEntriesタグを使うと、アーカイブ毎にブログ記事の一覧を出力することができます。
例えば、以下のようにテンプレートを組むと、最近6ヶ月間のブログ記事のタイトル一覧を、月ごとにまとめて出力することができます。

<mt:ArchiveList archive_type="Monthly" lastn="6">
  <h2><$mt:ArchiveTitle$></h2>
  <ul>
  <mt:Entries>
    <li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>(<$mt:EntryDate$>)</li>
  </mt:Entries>
  </ul>
</mt:ArchiveList>

3.今年度の新着記事を出力する

今年度の新着記事も、MTArchiveListタグとMTEntriesタグの組み合わせで出力することができます。

まず、MTArchiveListタグに「archive_type="FiscalYearly"」と「lastn="1"」のモディファイアを付けたブロックを作ります。
これで、年度別アーカイブのリストの最新1件(=今年度のアーカイブ)を出力することができます。
そして、このMTArchiveListタグのブロックの中に、MTEntriesタグのブロックを入れます。

例えば、以下のようにすれば、今年度の新着記事をul/liのリストで出力することができます。

<mt:ArchiveList archive_type="FiscalYearly" lastn="1">
  <ul>
  <mt:Entries>
    <li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>(<$mt:EntryDate format="%Y/%m/%d"$>)</li>
  </mt:Entries>
</ul>
</mt:ArchiveList>

上記のリストで、MTEntriesタグに「lastn="○○"」のモディファイアを追加して、今年度の新着記事を○○件出力することもできます。
また、MTEntriesタグに「sort_order="ascend"」のモディファイアを追加して、今年度の新着記事を日付の古い順に出力することもできます。