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>
  1. <MTTopLevelCategories>〜</MTTopLevelCategories> 

     現在のカテゴリに関わりなく、最上位のカテゴリからサブカテゴリを含めたリストを表示します。

  2. <MTSubCatIsFirst><ul></MTSubCatIsFirst>

     カテゴリーやサブカテゴリーが新しく出てくるたびに<ul>を書き出します。

  3. <MTIfNonZero tag="MTCategoryCount">
    (1)
    <MTElse>
    (2)
    </MTIfNonZero>

     カテゴリーに記事が一つでもあれば(1)が、一つもなければ(2)が実行されます。

  4. <li><MTCategoryLabel>
    <ul>
    <MTEntries>
       <li><$MTEntryTitle$></li>
    </MTEntries>
    </ul>

     まずカテゴリーの名前を表示し、さらに入れ子構造でそのカテゴリーに属する記事の一覧をリスト表示します。

  5. <$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>

トラックバックURL

このエントリーへのリンク:

このエントリーのトラックバックURL:

コメントする