ブログの全ページに最新記事のリストを出力するワザ・その2

先日、「ブログの全ページに最新記事のリストを出力する裏ワザ」という記事を公開したところ、「MTArchiveListタグを使えばできる」というコメントをいただきました。
MTArchiveListタグは盲点でした。

ということで、MTArchiveListタグを使って、ブログの全ページに最新記事のリストを出力するワザを紹介します。

1.MTArchiveListタグについて

MTArchiveListタグは、アーカイブページの一覧を出力するブロックタグです。
主に、月別アーカイブページの一覧を出力する際に使うことが多いです。

ただ、「archive_type」というモディファイアを使えば、月別に限らず、各種のアーカイブページのリストを出力することができます。
「archive_type="Individual"」とすれば、ブログ記事アーカイブのリスト、つまり最新記事のリストも出力することができます。
さらに、「archive_type="Individual"」のモディファイアを指定している場合、MTArchiveListタグのブロックの中で、MTEntry系のテンプレートタグを使うこともできます。

なお、MTArchiveListタグでは、lastnモディファイアでリストに出力する件数を指定したり、sort_orderモディファイアで並び順を指定することもできます。

2.例

Movable Type付属の「既定のブログ」(MT5では「クラシックブログ」)のテンプレートで、サイドバーに最新記事を10件を出力したいとします。
この場合、以下のようなウィジェットを作り、そのウィジェットをサイドバーに組み込むようにします。

<mt:If tag="BlogEntryCount">
<mt:ArchiveList archive_type="Individual" lastn="10">
<mt:ArchiveListHeader>
<div class="widget-recent-entries widget-archives widget">
    <h3 class="widget-header">最近のブログ記事(さらに改)</h3>
    <div class="widget-content">
        <ul>
</mt:ArchiveListHeader>
            <li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li>
<mt:ArchiveListFooter>
        </ul>
    </div>
</div>
</mt:ArchiveListFooter>
</mt:ArchiveList>
</mt:If>

3.この方法の弱点

MTArchiveListタグを使う方法だと、最近の○○件の記事を取り出すことは、簡単に行うことができます。
ただ、MTEntriesタグにとは違って、複雑なモディファイアを指定することができません。

複雑なモディファイアを指定する必要がある場合は、先日の記事に書いた方法を使う必要があります。