Movable Type 同じ階層にあるほかのサブカテゴリを表示

Movable Type
Movable Type アーカイブテンプレート

Movable Type ひとつ上の階層のサブカテゴリを表示する

Movable Type 4

Movable Type カテゴリー・アーカイブでサブカテゴリを表示するでカテゴリアーカイブテンプレートを変更したら、もうちょっと踏み込んでみます。
すべてのカテゴリにサブカテゴリがあればいいですが、そうでない場合ももちろんあります。最下層のカテゴリなどはそうですよね。
そういう場合、ただの空白ではなくて、そのカテゴリから見て同じ階層にあるカテゴリ(ひとつ上の階層のサブカテゴリ)たちを並べる、という手があります。
同じカテゴリアーカイブテンプレートを編集します。

例:該当のカテゴリにサブカテゴリがない場合は、同じ階層のカテゴリを表示

 
 <MTHasNoSubCategories>
 <div>
 <MTHasParentCategory>
 <MTParentCategory>
 <MTSubCategories>
 <MTIfNonZero tag="MTCategoryCount">
 <a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>">
 <MTCategoryLabel></a>
 </MTIfNonZero>
 </MTSubCategories>
 </MTParentCategory>
 </MTHasParentCategory>
 </div>
 </MTHasNoSubCategories>

以下解説です。

 <MTHasNoSubCategories> …サブカテゴリがない場合、以下を実行
 <div>
 <MTHasParentCategory> …親のカテゴリがある場合
 <MTParentCategory> …親のカテゴリの
 <MTSubCategories> …サブカテゴリ
 <MTIfNonZero tag="MTCategoryCount"> …があれば
 <a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>">…そのカテゴリへのリンク設定
 <MTCategoryLabel>
 </a>カテゴリ名
 </MTIfNonZero>
 </MTSubCategories>
 </MTParentCategory>
 </MTHasParentCategory> 
 </div>
 </MTHasNoSubCategories>

ただ、これだけだとサブカテゴリがない&親のカテゴリがない場合、つまり1階層目のカテゴリページでは何も表示されません。
ので、次のようにします。

続き→カテゴリ内のエントリーを表示する

Movable Type導入支援・カスタマイズ・構築はこちら

  • 閉じ忘れがありますよ — {2010-09-14 (火) 20:20:26}
  • ご指摘、ありがとうございます!修正しました。 — 中の人 {2010-09-15 (水) 14:21:27}
  • 閉じ忘れがありますよ — {2012-08-14 (火) 11:56:24}
  • 申し訳ありません、もう弊社でMTの環境がないため、ご指摘の箇所がわかりません。お手数でなければ、修正して頂けるか、どの部分か教えて頂けると助かります。m(_ _)m — 中の人 {2012-08-15 (水) 10:53:03}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です