Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Template Tag Referenceテンプレートタグリファレンス

MTSubCategories

最終更新日: 2025.07.04

現在のカテゴリの子カテゴリを階層化して一覧表示するためのブロックタグです。MTSubCatsRecurse ファンクションタグと組み合わせることで子孫カテゴリを表示します。

  • 基本的な使い方
<mt:SubCategories category="japan">
    <div><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></div>
</mt:SubCategories>

指定したカテゴリの子カテゴリをリスト表示する例

<mt:SubCategories category="Italian">
    <h3><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></h3>
    <ul>
        <mt:SubCategories>
            <li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></li>
        </mt:SubCategories>
    </ul>
</mt:SubCategories>

同じ名前のカテゴリが別の階層にある場合は、親カテゴリと子カテゴリをスラッシュ(/)で区切って指定します。

<mt:SubCategories category="Restaurants/Italian">
    <$mt:CategoryLabel$>
    <mt:SubCategories>
</mt:SubCategories>

カテゴリ名にスラッシュ(/)が含まれる場合は、カテゴリ名を角括弧([])で囲みます。

<mt:SubCategories category="Restaurants/[Indian/Pakistani]">
    <$mt:CategoryLabel$>
    <mt:SubCategories>
</mt:SubCategories>

再帰的なカテゴリリストの作成

<mt:SubCategories> は、<mt:SubCatsRecurse> ファンクションタグと組み合わせることで、子カテゴリを階層的に表示する再帰的なリストを作成できます。これにより、入れ子になったカテゴリ構造を柔軟に表示できます。

<mt:SubCategories>
    <mt:ArchiveListHeader><ul></mt:ArchiveListHeader>
        <li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a>
            <mt:SubCatsRecurse>
        </li>
    <mt:ArchiveListFooter></ul></mt:ArchiveListFooter>
</mt:SubCategories>

記事のないカテゴリを除外する例

<mt:SubCategories>
  <mt:ArchiveListHeader><ul></mt:ArchiveListHeader>
      <mt:If tag="CategoryCount">
          <li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a>
              <mt:SubCatsRecurse>
          </li>
      </mt:If>
    <mt:ArchiveListFooter></ul></mt:ArchiveListFooter>
</mt:SubCategories>

<mt:SubCategories> タグは、指定されたコンテキスト(現在のカテゴリ、または category モディファイアで指定されたカテゴリ)の子カテゴリのみを対象とします。再帰的にすべての子孫カテゴリを表示するには、<mt:SubCatsRecurse> を使用してください。

親カテゴリ、子カテゴリを含め表示する例

<$mt:CategoryLabel setvar="CategoryLabel"$>
<mt:HasParentCategory>
    <mt:ParentCategory>
        <$mt:CategoryLabel setvar="ParentCategoryLabel"$>
        <mt:ArchiveListHeader><ul></mt:ArchiveListHeader>
        <li>Parent: <a href="<$mt:ArchiveLink$>"><$mt:CategoryLabel$></a></li>
        <mt:SubCategories category="$ParentCategoryLabel">
            <mt:If tag="CategoryLabel" ne="$ParentCategoryLabel">
                <mt:ArchiveListHeader><ul></mt:ArchiveListHeader>
                    <li>Sibling: <a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></li>
                <mt:ArchiveListFooter></ul></mt:ArchiveListFooter>
            </mt:If>
        </mt:SubCategories>
        <li>Current: <$mt:Var name="CategoryLabel"$></li>
        <mt:SubCategories category="$CategoryLabel">
            <mt:If tag="CategoryLabel" ne="$CategoryLabel">
                <li>Child: <a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></li>
            </mt:If>
        </mt:SubCategories>
        <mt:ArchiveListFooter></ul></mt:ArchiveListFooter>
    </mt:ParentCategory>
<mt:Else>
    <mt:ArchiveListHeader><ul></mt:ArchiveListHeader>
        <mt:SubCategories top="1">
            <li>Sibling: <a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></li>
        </mt:SubCategories>
            <li>Current: <$mt:Var name="CategoryLabel"$></li>
        <mt:SubCategories category="$CategoryLabel">
            <li>Child: <a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></li>
        </mt:SubCategories>
    <mt:ArchiveListFooter></ul></mt:ArchiveListFooter>
</mt:HasParentCategory>

モディファイア

<mt:SubCategories> タグは、以下のモディファイアをサポートします。top または category モディファイアのどちらかが必須です。
top モディファイアを有効にした場合は category モディファイアは適用されません。

include_current="0 | 1"

値に 1 を指定すると、現在のカテゴリを含めて表示します。初期値は 0 です。

top="0 | 1"

値に 1 を指定すると、最上位のカテゴリの一覧を表示します。MTTopLevelCategories ブロックタグと同様の挙動となります。初期値は 0 です。

category="category_foo"

指定したカテゴリの子カテゴリのみを表示します。値にはカテゴリ名を指定します。(ベースネームではありません)

  • 同じ名前のカテゴリが別の階層にある場合は、親カテゴリ/子カテゴリのようにスラッシュで区切って記述することで、異なるカテゴリを指定できます。
  • カテゴリ名にスラッシュ(/)が含まれる場合は、カテゴリ名を角括弧([])で囲みます。例: category="[Indian/Pakistani]"
sort_by="label | description | basename | created_on | modified_on | user_custom"

管理画面で並び替えた順番でカテゴリの一覧を出力します。初期値は user_custom です。Movable Type 5.1 で追加されました。

  • user_custom: 管理画面で並び替えた順番(カスタムソート)でソートします。(初期値)
  • label: カテゴリ名でソートします。
  • description: カテゴリの説明でソートします。
  • basename: カテゴリのベースネーム(出力ファイル/フォルダ名)でソートします。
  • created_on: カテゴリの作成日でソートします。
  • modified_on: カテゴリの更新日でソートします。
sort_order="ascend | descend"

並べる順序を指定します。ascend を指定すると昇順、descend は降順になります。初期値は ascend です。sort_by と併せて指定します。

<mt:SubCategories sort_by="label" sort_order="descend">
  <$mt:CategoryLabel$>
</mt:SubCategories>

user_custom 以外にも、上記の値を指定することができます。このモディファイアを指定した場合、管理画面で設定した並び順を無視し、指定した値で並び替えます。
このブロックタグ内で、<mt:CategoryPrevious> タグ、および <mt:CategoryNext> タグを利用した場合は、sort_by モディファイアで指定した順番で、前と次のカテゴリを表示します。

sort_method="sub_foo"

Perl のメソッド名を使用してカテゴリを並び替えます。これにより、カスタムのソートロジックを適用できます。

このモディファイアは、ダイナミックパブリッシングではサポートされていません。

MTSubCategories と関連のあるテンプレートタグ (41)

  • このタグは現在、非推奨です。MTCategoryLabel タグを使用してください。

    カテゴリ名を表示します。

    このタグは MTCategoryLabel ファンクションタグと同じ働きをします。

  • ブログの総カテゴリ数を表示します。複数のブログを運用しているとき、下記のモディファイアを指定すると、複数のブログに登録されているカテゴリの数を表示します。

  • カテゴリの一覧を表示するためのブロックタグです。このタグはメインカテゴリもサブカテゴリも区別せずに表示します。階層的に表示したいときは、MTSubCategories タグを利用します。

  • カテゴリアーカイブの URL を表示します。

  • カテゴリの編集画面の『出力ファイル/フォルダ名』に設定された値(ベースネーム)を表示します。

  • 特定のカテゴリに含まれる記事に投稿されたコメントの総数を表示します。

  • カテゴリに含まれる記事の件数を表示します。未公開の記事は含みません。

  • カテゴリの編集画面に追加されたカスタムフィールドの『説明』を表示するファンクションタグです。

    このタグは MTCategoryCustomFields タグのコンテキストで使用します。

  • カテゴリの編集画面に追加されたカスタムフィールドの『名前』を表示するファンクションタグです。

    このタグは MTCategoryCustomFields タグのコンテキストで使用します。

  • カテゴリに関するカスタムフィールドの情報を表示するためのブロックタグです。カテゴリの編集画面に追加されたすべてのカスタムフィールドの情報を表示します。

    include モディファイアを使用すると、名前を指定したカスタムフィールドのみを対象にできます。exclude モディファイアに名前を指定したカスタムフィールドは対象から除外されます。

    特定のカスタムフィールドだけを表示したいときは、個別のテンプレートタグを使用してください。

  • カテゴリの編集画面に追加されたフィールドの値を表示するファンクションタグです。

    このタグは MTCategoryCustomFields タグのコンテキストで使用します。

  • カテゴリの編集画面で入力した『説明』を表示します。

  • カテゴリの ID 番号を表示します。

  • カテゴリへのトラックバックを受け付ける設定のときに実行する条件タグです。

  • カテゴリ名を表示します。

  • 現在のカテゴリの次のカテゴリの内容を表示するためのブロックタグです。このタグの中の MTCategoryLabel タグは、次のカテゴリのタイトルを表示します。

  • 現在のカテゴリの前のカテゴリの内容を表示するためのブロックタグです。このタグの中の MTCategoryLabel は、前のカテゴリのタイトルを表示します。

  • カテゴリで受け付けたトラックバックの数を表示します。

  • カテゴリについてトラックバックを受け付ける設定になっているとき、そのカテゴリへのトラックバック URL を表示します。このタグは、カテゴリアーカイブか MTCategories タグの中で利用できます。また、モディファイア category を指定すると、どこでも利用できます。

  • 記事を一覧するためのブロックタグです。MTEntries ブロックタグで include_subcategories="1" を指定した場合と同じ動作になります。

    MTEntries ブロックタグでカテゴリを指定した場合、そのカテゴリに属する記事のみが対象になるのに対し、このタグでカテゴリを指定した場合は、指定したカテゴリとすべての子カテゴリに属する記事が対象になります。

  • 記事に指定したカテゴリの一覧のためのブロックタグです。この一覧には、メインカテゴリは含みません。また、このブロックタグの中では <$MTCategory...$> タグを利用できます。モディファイア glue を使うと、カテゴリの区切り文字を指定できます。

  • 記事に指定したカテゴリの一覧のためのブロックタグです。この一覧にはメインカテゴリも含みます。また、このブロックタグの中では <$MTCategory...$> ファンクションタグを利用できます。glue モディファイアを使うと、カテゴリの区切り文字を指定できます。

  • 記事に指定したメインカテゴリを表示します。

  • プライマリカテゴリ(メインカテゴリ)の情報を取得するためのブロックタグです。MTEntryCategories タグに type="primary" を指定した場合と同じ働きをします。

  • 現在のカテゴリに親カテゴリが存在しないときだけ実行する条件タグです。

  • 現在のカテゴリに子カテゴリが存在しないときだけ実行する条件タグです。

  • 現在のカテゴリに親カテゴリが存在しているときだけ実行する条件タグです。

  • 現在のカテゴリにサブカテゴリが存在しているときだけ実行する条件タグです。

  • コンテキスト内に指定されたカテゴリが含まれる、または、対象となる記事が指定されたカテゴリに属している場合に実行する条件タグです。

  • child モディファイアで指定したカテゴリが、現在のカテゴリの子(子孫)カテゴリにあたる場合に実行する条件タグです。

  • parent モディファイアで指定したカテゴリが、現在のカテゴリの親(祖先)カテゴリにあたる場合に実行する条件タグです。

  • 最上位のカテゴリから現在のカテゴリまでを繰り返して表示するブロックタグです。

    glue モディファイアにより、カテゴリをつなげる文字を指定できます。また、exclude_current モディファイアを指定することで、現在のカテゴリを除外できます。

  • 現在のカテゴリの親カテゴリを表示します。

  • サイトの総カテゴリ数を表示します。カテゴリセット内のカテゴリは数えません。 MT...
  • 現在のカテゴリの子カテゴリを階層化して一覧表示するためのブロックタグです。MTSubCatsRecurse ファンクションタグと組み合わせることで子孫カテゴリを表示します。

  • 最上位のトップレベルカテゴリから現在のカテゴリまでのディレクトリパスを表示します。パスは各カテゴリの『出力ファイル/フォルダ名』(ベースネーム)をもとに生成されます。例えば、foo というカテゴリに bar という子カテゴリがある場合は foo/bar と表示します。

  • カテゴリ一覧を出力するループの中で最初のときだけ実行する条件タグです。サブカテゴリを含む一覧を <ul> タグで階層化するときなどに、MTSubCatIsLast タグと組み合わせて利用します。

  • カテゴリ一覧を出力するループの中で最後のときだけ実行する条件タグです。サブカテゴリを含む一覧を <ul> タグで階層化するときなどに、MTSubCatIsFirst タグと組み合わせて利用します。

  • 現在のカテゴリに属するカテゴリの MTSubCategories ブロックを再帰的に表示します。max_depth モディファイアで再帰的に表示する深さを指定できます。max_depth="1" と指定すると、現在のカテゴリの直下の子カテゴリまでを表示します。

  • 現在のカテゴリに関わりなく、最上位のカテゴリを一覧するためのブロックタグです。

    <mt:SubCategories top="1"> と記述することと同じ動作になります。

    詳しくは MTSubCategories タグを参照してください。

  • 現在のカテゴリの最上位カテゴリを表示するブロックタグです。