MT4でカテゴリにエントリ一覧を表示する

 カテゴリ:

MTをCMS的に使っていると、カテゴリのテンプレートにこんな感じで書き出したいときってありますよね。

md@時間がないので高速エントリな人、です。MTをCMS的に使っていると、カテゴリのテンプレートにこんな感じで書き出したいときってありますよね。

  • カテゴリA
    • エントリA−1
    • エントリA−2
    • エントリA−3
  • カテゴリB
    • エントリB−1
    • エントリB−2
    • エントリB−3
吐き出すソースコードでいうと

<ul>
<li>カテゴリA
	<ul>
		<li>エントリA−1</li>
		<li>エントリA−2</li>
		<li>エントリA−3</li>
	</ul>
</li>
<li>カテゴリB
	<ul>
		<li>エントリB−1</li>
		<li>エントリB−2</li>
		<li>エントリB−3</li>
	</ul>
</li>
</ul>

これは


<MTCategories>
<h3><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a>(<$MTCategoryCount$>)</h3>
<ul>
<MTEntries lastn="3">
<li><a href="<$MTEntryLink$>"><$MTEntryTitle$></a><$MTEntryDate format="(%m/%d)"$></li>
</MTEntries>
</ul>
</MTCategories>

とかなんですけど(lastn="3"は表示させたい記事件数)、これだとカテゴリが深くなった時に対応できないです。これを解決するには


<MTTopLevelCategories>
<MTSubCatIsFirst>
<ul>
</MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
	<li class="category"><a href="<$MTCategoryArchiveLink$>"<MTIfNonEmpty tag="MTCategoryDescription"> title="<$MTCategoryDescription$>"</MTIfNonEmpty>><$MTCategoryLabel$>(<$MTCategoryCount$>)</a>
	<ul>
	<MTEntries lastn="999" sort_order="descend">
	<li class="entry"><a href="<$MTEntryLink$>"><$MTEntryTitle$></a></li>
	</MTEntries>
	</ul>
	<MTElse>
	<li><$MTCategoryLabel$>
</MTIfNonZero>
<$MTSubCatsRecurse$></li>
<MTSubCatIsLast>
</ul>
</MTSubCatIsLast>
</MTTopLevelCategories>

カテゴリ系のタグの中でMTEntriesを使うことによって、カテゴリに属するエントリへのリンクの一覧を書き出すわけです。吐き出されるコードはこんな感じ(改行の調整処理後)


<ul>
<li class="category"><a href="https://studiomd.jp/hogehoge/>ホームページを作成します(3)</a>
	<ul>
	<li class="entry"><a href="https://studiomd.jp/hogehoge/hoge1.html">MovableType4でもOK</a></li>
	<li class="entry"><a href="https://studiomd.jp/hogehoge/hoge2.html">ホームページをリニューアルしたい</a></li>
	<li class="entry"><a href="https://studiomd.jp/hogehoge/hoge3.html">新規でホームページを作成</a></li>
	</ul>
	<ul>
	<li class="category"><a href="https://studiomd.jp/fugefuge/hagehage/">出張作成OK(1)</a>
		<ul>
		<li class="entry"><a href="https://studiomd.jp/fugefuge/hagehage/hage1.html">出張作成いたしますの記事</a></li>
		</ul>
	</li>
	</ul>
</li>
<li class="category"><a href="https://studiomd.jp/higehige/">studio mdのクオリティ(3)</a>
	<ul>
	<li class="entry"><a href="https://studiomd.jp/higehige/hige1.html">豊富な管理・運用ノウハウ</a></li>
	<li class="entry"><a href="https://studiomd.jp/higehige/hige2.html">ショッピングカート導入OK</a></li>
	<li class="entry"><a href="https://studiomd.jp/higehige/hige3.html">あなたのホームページに「最新」を</a></li>
	</ul>
</li>
</ul>

ここまでは自力でなんとかしたんですが、liの中にulが2つ入るのがどうにも...(^^;)。liタグで書き出されるとき、それがカテゴリかエントリかをclassで指定しています。これとul-liのネストの深さを基に、CSSで外観を調整します。mdは外観をこんな感じにしました。

MT4でカテゴリにエントリ一覧を表示する

以上、自分用メモ。参考にするほどの記事ではないのでご了承を(^^;)