カテゴリリストで、最初に表示されるカテゴリ名を出力してみた

「インデックステンプレートは、カテゴリリストの一番最初のカテゴリ記事を表示してほしい」
という、言葉では非常に簡単なのに、ぜんぜん一筋縄ではいかなかった要望に応えてみました。

まずは最初に表示されるカテゴリ名を取得します。

カテゴリリストは、MT上で並べ替えた順に出したいので、TopLevelCategoriesを使用。
Entriesで言えば、limit=”1″のようなことがしたいけど、
そんなモディファイアは使えません。

なので、TopLevelCategoriesでCategoryLabelを配列にして出力させ、
その1番目を抜き出すことにしたらできました。

<mt:TopLevelCategories>
  <$mt:CategoryLabel setvar="category"$>
  <$mt:Var name="push(cat)" value="$category"$>
</mt:TopLevelCategories>

<$mt:Var name="cat[0]"$>

その後、この変数をEntiresのcategoryモディファイアに入れて出力させようと思ったら出ない。。

なので、この変数をさらに変数に変換してみました。

<mt:SetVarBlock name="firstCat">
  <$mt:Var name="cat[0]"$>
</mt:SetVarBlock>

これをEntiresに入れてみたら、無事成功しました。

<mt:Entries sort_order="ascend" category="$firstCat">
  hogehoge
</mt:Entries>

これを使う機会はほとんどないと思うけど、念のための備忘録です。

コメントを残す

あなたのメールアドレスは公開されません。必須項目には印がついています *

CAPTCHA