お知らせ

Movable Type 5.1 Webサイト製作ガイドVolume 12011年6月30日

Movable Type 5.1 Webサイト製作ガイドVolume 1」を発売しました。
Movable Type 5.1を基本からしっかりマスターしたい方のための書籍です。
前書「Movable Type 5 Webサイト製作ガイド Volume 1」をMovable Type 5.1対応に改訂しました。 Movable TypeでWeb製作をされている方などにお勧めです。
PDFによる販売で、当サイトでのみ購入できます(書店では購入できません)

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

各カテゴリの最新日付別カテゴリアーカイブのリストを出力する

| コメント(0) | トラックバック(0)

MTQに、以下のような質問がアップされていました。

サブナビから、登録した各カテゴリの最新記事がある年度別一覧に飛ばしたいのですが、いろいろタグを調べており、なかなかうまくリンク先のパスが出力されずにいます。

この質問に答えてみます。

1.MTCategories/MTTopLevelCategoriesタグの中でMTArchiveListタグを使う

この質問のようなことをするには、カテゴリ毎に出力を区切って、その中でカテゴリ毎の日付別アーカイブリストを出力するようにすると、テンプレートを組みやすくなります。
それには、「MTCategories/MTTopLevelCategoriesタグの中でMTArchiveListタグを使う」というテクニックを使います。

MTCategoriesタグやMTTopLevelCategoriesタグの中で、MTArchiveListタグを使うことができます。
そして、MTArchiveListタグにarchive_typeモディファイアに「Category-Monthly」等を指定すると、カテゴリ毎にカテゴリ月別アーカイブ等のリストを出力することができます。

質問の内容では、小川さんが作られたFiscalYearlyプラグインを使って、カテゴリ年度別アーカイブを出力するとのことでした。
MTTopLevelCategoriesタグを使う場合だと、以下のようにすることで、カテゴリ毎に年度別アーカイブのリストを出力することができます。

<mt:TopLevelCategories>
    <mt:If tag="CategoryCount">
    カテゴリの情報を出力する部分
    <mt:ArchiveList archive_type="Category-FiscalYearly">
        各カテゴリの年度別アーカイブリストを出力する部分
    </mt:ArchiveList>
    </mt:If>
    <mt:SubCatsRecurse>
</mt:TopLevelCategories>

なお、リスト内のMTIfタグは、記事がないカテゴリを出力しないようにするために入れています。

2.MTArchiveListタグにlastnモディファイアを指定する

MTArchiveListタグは、モディファイアを特に指定しない場合、すべてのアーカイブのリストを出力します。
しかし、「lastn="○"」のモディファイアを指定することで、最近○件のアーカイブのリストだけを出力することができます。

この仕組みを使って、「lastn="1"」のモディファイアを指定すれば、最近1件のアーカイブだけを出力することができます。

3.実際の例

ここまでの話に基づいて、各カテゴリの最新年度別アーカイブの一覧を出力するには、以下のようにタグを組むと良いでしょう。

<ul>
<mt:TopLevelCategories>
    <mt:If tag="CategoryCount">
    <mt:ArchiveList archive_type="Category-FiscalYearly" lastn="1">
    <li><a href="<$mt:ArchiveLink$>"><$mt:ArchiveTitle$></a></li>
    </mt:ArchiveList>
    </mt:If>
    <mt:SubCatsRecurse>
</mt:TopLevelCategories>
</ul>

2行目のMTTopLevelCategoriesタグで、カテゴリを順に出力するようにします。
そして、4行目のMTArchiveListタグで、各カテゴリの年度別アーカイブの最新1件を出力します。

Facebook連携

当記事について「いいね」や「送信」を行っていただけると幸いです。


この記事についてウォールに投稿

トラックバック(0)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/2034.

コメントする


Facebookでコメント

試験的にFacebookのコメントフォームを設置しました。