Movable Type:記事のカテゴリー別一覧表示
サイドバーの「メニュー」にある「全記事リスト」をクリックしてもらうとわかるのですが、ブログ上の記事の一覧をカテゴリー別に表示できるようにしました。
![]()
<MTTopLevelCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><MTCategoryLabel>
<ul>
<MTEntries>
<li><$MTEntryTitle$></li>
</MTEntries>
</ul>
<MTElse>
<li><MTCategoryLabel>
</MTIfNonZero>
<$MTSubCatsRecurse$>
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTTopLevelCategories>
<MTTopLevelCategories>〜</MTTopLevelCategories>
現在のカテゴリに関わりなく、最上位のカテゴリからサブカテゴリを含めたリストを表示します。
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
カテゴリーやサブカテゴリーが新しく出てくるたびに<ul>を書き出します。
<MTIfNonZero tag="MTCategoryCount">
(1)
<MTElse>
(2)
</MTIfNonZero>カテゴリーに記事が一つでもあれば(1)が、一つもなければ(2)が実行されます。
<li><MTCategoryLabel>
<ul>
<MTEntries>
<li><$MTEntryTitle$></li>
</MTEntries>
</ul>まずカテゴリーの名前を表示し、さらに入れ子構造でそのカテゴリーに属する記事の一覧をリスト表示します。
<$MTSubCatsRecurse$>
は、その時に処理しているカテゴリーにサブカテゴリーがある場合、そのサブカテゴリーを再帰的に処理し、今度はそのサブカテゴリーがTopLevelCategoryタグの対象データとして処理されます。
再帰処理とは"自分自身を自分がどんどん呼び出す"ことです。
うーん、ここがちょっと難しいですね(~_~;)
さらに、
- カテゴリーへのリンク
- カテゴリーに含まれる記事の数
- 記事のタイムスタンプ
- 記事へのリンク
を加えたものが以下のスクリプトです
<MTTopLevelCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>"><MTCategoryLabel></a>[<$MTCategoryCount$>]
<ul>
<MTEntries>
<li><$MTArchiveDate format="%Y.%m.%d"$>:<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
<MTElse>
<li><MTCategoryLabel>
</MTIfNonZero>
<$MTSubCatsRecurse$>
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTTopLevelCategories>


コメントする