【Movable Type】カテゴリ一覧を出力する
※PowerCMSも同様
概要
管理画面「カテゴリ」で追加されたカテゴリを出力する。カテゴリ一覧の出力方法はいくつかあり、用途により使い分けると便利。
なお、以降の説明はカテゴリの階層は下記を前提としています。また、各カテゴリ一覧で使用できるモディファイアは、最低限覚えておくとよいもののみ記載しています。
カテゴリA
└カテゴリA-1
└カテゴリA-2
カテゴリB
└カテゴリB-1
└カテゴリB-2
カテゴリC
└カテゴリC-1
└カテゴリC-2
カテゴリ一覧出力方法
MTCategories
カテゴリの一覧を表示するためのブロック。カテゴリの階層は関係なく、すべて同列に出力される。表示順も固定(カテゴリ名を基準とした文字コード順の昇順)
何も考えず手っ取り早くカテゴリ一覧を表示させるにはお勧め。
<!-- MT記述 -->
<mt:Categories>
<mt:If name="__first__">
<ul>
</mt:If>
<li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></li>
<mt:If name="__last__">
</ul>
</mt:If>
</mt:Categories>
<!-- HTML出力 -->
<ul>
<li><a href="">カテゴリA</a></li>
<li><a href="">カテゴリA-1</a></li>
<li><a href="">カテゴリA-2</a></li>
<li><a href="">カテゴリB</a></li>
<li><a href="">カテゴリB-1</a></li>
<li><a href="">カテゴリB-2</a></li>
<li><a href="">カテゴリC</a></li>
<li><a href="">カテゴリC-1</a></li>
<li><a href="">カテゴリC-2</a></li>
</ul>
lastn
出力するカテゴリの数を指定して出力する。
show_empty
1を指定すると記事が公開されていないカテゴリも出力する。
詳細はこちらを参照
https://www.movabletype.jp/documentation/appendices/tags/categories.html
MTTopLevelCategories
現在のカテゴリに関係なく、最上位のカテゴリ一覧を表示するブロック。単純に最上位のカテゴリリストのみ表示したい場合はこれが手っ取り早くてお勧め。ただしソートなど細かい設定ができないので、その場合は後述のMTSubCategories
を使うと良い。
<!-- MT記述 -->
<mt:TopLevelCategories>
<mt:SubCatIsFirst>
<ul>
</mt:SubCatIsFirst>
<li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></li>
<mt:SubCatIsLast>
</ul>
</mt:SubCatIsLast>
</mt:TopLevelCategories>
<!-- HTML出力 -->
<ul>
<li><a href="">カテゴリA</a></li>
<li><a href="">カテゴリB</a></li>
<li><a href="">カテゴリC</a></li>
</ul>
詳細はこちらを参照
https://www.movabletype.jp/documentation/appendices/tags/toplevelcategories.html
MTSubCategories
現在のカテゴリの子カテゴリを階層化して一覧表示するブロック。
<!-- MT記述 -->
<mt:TopLevelCategories>
<h2><$mt:CategoryLabel$></h2>
<mt:SubCategories>
<mt:SubCatIsFirst>
<ul>
</mt:SubCatIsFirst>
<li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></li>
<mt:SubCatIsLast>
</ul>
</mt:SubCatIsLast>
</mt:SubCategories>
</mt:TopLevelCategories>
<!-- HTML出力 -->
<h2>カテゴリA</h2>
<ul>
<li><a href="">カテゴリA-1</a></li>
<li><a href="">カテゴリA-2</a></li>
</ul>
<h2>カテゴリB</h2>
<ul>
<li><a href="">カテゴリB-1</a></li>
<li><a href="">カテゴリB-2</a></li>
</ul>
<h2>カテゴリC</h2>
<ul>
<li><a href="">カテゴリC-1</a></li>
<li><a href="">カテゴリC-2</a></li>
</ul>
top
1を指定すると、MTTopLevelCategories
と同じ挙動になる。
category
特定のカテゴリの子カテゴリ一覧を表示したい場合、カテゴリ名を指定する。
詳細はこちらを参照
https://www.movabletype.jp/documentation/appendices/tags/subcategories.html
MTSubCatsRecurse
MTSubCategories
ブロック内を再帰的に表示する。
<!-- カテゴリ例 -->
カテゴリA
└カテゴリA-1
└カテゴリA-1-1
└カテゴリA-1-2
└カテゴリA-2
└カテゴリA-2-1
└カテゴリA-2-2
<!-- MT記述 -->
<mt:TopLevelCategories>
<h2><$mt:CategoryLabel$></h2>
<mt:SubCategories>
<mt:SubCatIsFirst>
<ul>
</mt:SubCatIsFirst>
<li>
<a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a>
<$mt:SubCatsRecurse$>
</li>
<mt:SubCatIsLast>
</ul>
</mt:SubCatIsLast>
</mt:SubCategories>
</mt:TopLevelCategories>
<!-- HTML出力 -->
<h2>カテゴリA</h2>
<ul>
<li>
<a href="">カテゴリA-1</a>
<ul>
<li><a href="">カテゴリA-1-1</a></li>
<li><a href="">カテゴリA-1-2</a></li>
</ul>
</li>
<li>
<a href="">カテゴリA-2</a>
<ul>
<li><a href="">カテゴリA-2-1</a></li>
<li><a href="">カテゴリA-2-2</a></li>
</ul>
</li>
</ul>
max_depth
再帰的に表示させる階層の数(深さ)を指定する。
詳細はこちらを参照
https://www.movabletype.jp/documentation/appendices/tags/subcatsrecurse.html
一緒に覚えておくといいもの
カテゴリ一覧出力時に一緒に覚えておくといいもの。
MTCategoryLabel
カテゴリ名を出力する。
MTCategoryBasename
カテゴリのベースネームを出力する。主にCSSで指定するclass名に使用する場合が多い。
MTCategoryArchiveLink
カテゴリのアーカイブURLを出力する。
MTCategoryID
カテゴリのID(数字)を出力する。
MTCategoryCount
カテゴリ毎に、そのカテゴリが指定されている公開されている記事の件数を出力する。単純に記事の件数を表示したり、MTIf
ブロックで記事がある場合、ない場合の分岐などに使える。
<!-- 表示例 -->
<mt:If tag="CategoryCount">
<li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a></li>
<mt:Else>
<li><$mt:CategoryLabel$></li>
</mt:If>
MTSubCatIsFirst
MTTopLevelCategories
MTSubCategories
内で使用する。ループ出力の一番はじめのときだけ出力される内容。
MTSubCatIsLast
MTTopLevelCategories
MTSubCategories
内で使用する。ループ出力の一番最後のときだけ出力される内容。
Discussion