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

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

Movable Type カスタマイズ カテゴリ内のエントリーを表示する

ある意味、かなり基本に戻ったのかもしれませんが。(^_^;
カテゴリー・アーカイブ・テンプレートでカテゴリを表示するシリーズの最後です。

  1. Movable Type カテゴリー・アーカイブでサブカテゴリを表示する
  2. Movable Type 同じ階層にあるほかのサブカテゴリを表示

の2つで階層になっているカテゴリの表示方法を模索してきました。
上の2件でやったこと以外に、サブカテゴリも親のカテゴリもないカテゴリ、というのがあります。
1階層目のサブカテゴリを持たないカテゴリです。
その場合、そのカテゴリのエントリーへのリンクを示します。

(そういう場合はトップレベルのカテゴリの一覧の表示でいいじゃん!という場合は、②までで、の条件を外してください。)

 <div>
 <MTEntries lastn="20">
 <a href="<$MTEntryLink$>"><$MTEntryTitle$></a>
 </MTEntries>
 </div>
 </MTHasParentCategory>
 </MTHasNoSubCategories>

解説です。

 <div> 
 <MTEntries lastn="20"> …エントリーを20件表示
 <a href="<$MTEntryLink$>"><$MTEntryTitle$></a> …リンクを設定
 </MTEntries>
 </div>

なので、Movable Type カテゴリー・アーカイブでサブカテゴリを表示する、
Movable Type 同じ階層にあるほかのサブカテゴリを表示で作ったコードと組み合わせて、次のような動作をするようにします。

  1. サブカテゴリがあればサブカテゴリを表示&リンクする
  2. サブカテゴリがなく、親のカテゴリがあれば同じ階層のサブカテゴリを表示&リンクする
  3. サブカテゴリがなく、親のカテゴリもなければカテゴリの中のエントリーを表示&リンクする

例:

 <!--サブカテゴリがある場合は、サブカテゴリを表示-->
 <MTHasSubCategories>
 <div>
 <MTSubCategories>
 <MTIfNonZero tag="MTCategoryCount">
 <a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>">
 <MTCategoryLabel remove_html="1></a>
 </MTIfNonZero>
 </MTSubCategories>
 </div>
 </MTHasSubCategories>
 <!--サブカテゴリがない場合は、親のカテゴリのサブカテゴリを表示-->
 <MTHasNoSubCategories>
 <div>
 <MTHasParentCategory>
 <MTParentCategory>
 <MTSubCategories>
 <MTIfNonZero tag="MTCategoryCount">
 <a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>">
 <MTCategoryLabel remove_html="1"></a>
 </MTIfNonZero>
 </MTSubCategories>
 </MTParentCategory>
 </div>
 <MTElse>
 <!--サブカテゴリがなく、親のカテゴリもない場合はそのカテゴリ内のエントリを表示-->
 <div>
 <MTEntries lastn="20">
 <a href="<$MTEntryLink$>"><$MTEntryTitle$></a>
 </MTEntries>
 </div>
 </MTElse>
 </MTHasParentCategory>
 </MTHasNoSubCategories>

3つのコードをつなぐのに、 を使用しています。
<MTElse>はブロックタグと組み合わせて、ブロックタグの条件に合わない場合、で囲んだ範囲を実行する、というタグです。
ここでは、の条件を満たしているか、いないか、です。

Movable Type導入支援・カスタマイズ・構築

コメントを残す

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