📃

【Movable Type】カテゴリ一覧を出力する

2022/10/22に公開約4,500字

※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名に使用する場合が多い。

カテゴリのアーカイブ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

ログインするとコメントできます