あるカテゴリのサブカテゴリの一覧を、親ページ、サブカテゴリのページにも表示する方法

MTのブログ記事リストに、

サブカテゴリのリストを表示するページがあり、

自動的に出るように、MTのタグを使ってみました。

階層が以下のような時に、

・TOP
   ・カテゴリ1
     ・aaaaa
     ・bbbbb
     ・ccccc
     ・ddddd

カテゴリ1にサブカテゴリを表示する場合は、

●サブカテゴリ一覧を表示

<MTSubCategories>
 <li><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a></li>
</MTSubCategories>

こちらで出来ます(当然ですね)

 

さらにaaaaaを開いている時にも、aaaaa、bbbbb、ccccc、などのカテゴリを表示したい場合は、

・サブカテゴリのページで同じ階層のサブカテゴリを表示する

<MTHasParentCategory>
 <MTTopLevelCategories>
  <MTSubCategories>
   <li><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a></li>
  </MTSubCategories>
  </MTTopLevelCategories>
</MTHasParentCategory>

こう書くと上手いこと表示されました。

MTだと順番が思うようにできないから残念ですね。

(MT5.1からはある程度融通がきくそうですが・・・)

でこれはブログ記事リストに書いたので、

ひとつのテンプレに書いてます。

実際書いたのは、

以下のようなソースになります。

<!-- サブカテゴリがある場合に実行する -->

<MTIf tag="SubCategories">
 <ul class="subCategory">
  <MTSubCategories sort_order="descend" sort_by="basename">
   <li><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a></li>
  </MTSubCategories>
  </ul>
</MTIf>

<!-- 親カテゴリがある場合実行する -->

<MTHasParentCategory>
 <ul class="subCategory">
  <MTTopLevelCategories>
   <MTSubCategories sort_order="descend">
    <li><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a></li>
   </MTSubCategories>
    </MTTopLevelCategories>
  </ul>
</MTHasParentCategory>

こんなかんじで書いたので、サブカテゴリがないカテゴリには影響しませんし、親カテゴリがないカテゴリにも影響ありません。