MT - カテゴリーアーカイブでカテゴリーが表示されない

Thursday, Jul 21, 2005 - 01:44 +09:00

カテゴリーを階層状に表示させたい場合は、<MTSubCategories>を使います。MT公式サイトのマニュアルによると、

<MTSubCategories>
<MTSubCatIsFirst><ul></MTSubCategories>
<li>
<MTCategoryLabel>
<MTSubCatsRecurse>
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTSubCategories>

...と書くようだけど、これをこのまま書くとカテゴリー・アーカイブではカテゴリーが一覧表示されない。これはつまり、<MTSubCatsRecurse>というタグは「現在の」カテゴリーの子カテゴリーに繰り返されるタグだから。

つまりカテゴリーが以下のような階層構造になっているとすると...

「オススメ」カテゴリーの一覧ページでは、「オススメ」、「本」、「DVD」、「CD」が書き出されるけど、「本」カテゴリーの一覧ページでは「本」しか書き出されない。それはつまり、現在のページのカテゴリー「本」の下にはカテゴリーが存在しないから。

では、深い階層のページでもカテゴリーを一覧表示させるにはどうするか。

答えは簡単。<MTSubCategories>の代わりに、<MTTopLevelCategories>を使用する。このタグは<MTSubCategories>のクローン(つまり同じ働きをする)で、ただし常に最上位の階層から繰り返しを始める。ということは「現在の」カテゴリーに関わりなく、常に一番最初のカテゴリーから書き出してくれる。テンプレートのコードは、こうなる。

<MTTopLevelCategories>
<MTSubCatIsFirst><ul></MTSubCategories>
<li>
<MTCategoryLabel>
<MTSubCatsRecurse>
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTTopLevelCategories>

このコードでは、常に全カテゴリーが一覧表示される。なので単純にカテゴリーを全て表示させたいのなら、このタグを利用するのが無難です。

全ページで同じように出力されるため、モジュール化して一括管理できるのも利点。上記のソースをコピーして登録し、代わりに<MTInclude module="Category">などとしておけば、管理/編集も随分楽になります。オススメ。

posted in Tool Trackback (0)

Trackback

このエントリーのトラックバックURL
http://rospear.info/other/mt-tb.cgi/41

« Previous Entry - Next Entry »