MovableType __counter__を逆順で出したい!

2011年1月26日 by Sachio Maruyama

こんにちは。春が待ち遠しい丸山です。
52倍の重圧に耐えられるよう、MTネタの連載(いい響きだ...)っぽい感じでいきたいと思います。

mt:Entries内などでは__counter__という変数でループ回数を出せます。

<mt:Entries>
<p>カウンター:<$mt:Var name="__counter__"$> <$mt:EntryTitle$></p>
</mt:Entries>

これは何も問題ありません。
3カラムや4カラムレイアウト内での条件分岐に欠かせない存在です。

これをなんらかの理由で逆順にしたい場合。

<$mt:BlogEntryCount setvar="entryCount"$>  //ブログの総記事数を変数へセット ・・・①

<mt:Entries>
<$mt:Var name="__counter__" op="--" setvar="counter"$>  //__counter__の数-1を変数へセット・・・②
<p>カウンター:<$mt:Var name="entryCount" op="-" value="$counter"$> <$mt:EntryTitle$></p>  //①-②を出力
</mt:Entries>

上記はmt:Entries内の場合ですが、「ループ回数 - __counter__ - 1」という計算でmt:Forなど他のブロック内でも使えると思います。

ついでに逆順もう一つ。

<mt:Entries sort_order="ascend">  //最後にひっくり返すので昇順でスタート
<$mt:Var name="__counter__" setvar="counter"$>  //__counter__を変数へセット・・・①
<mt:SetVarBlock name="entry">  //__counter__とタイトルを一緒に変数へセット・・・②
	<p>第<$mt:Var name="__counter__"$>回 <$mt:EntryTitle$></p>
</mt:SetVarBlock>
<mt:SetVar name="entries{$entry}" value="$counter">  //②をkey、を①valueにしてハッシュへセット
</mt:Entries>

<mt:Loop name="entries" sort_by="value numeric reverse">  //ハッシュの中身を逆順に出力
	<$mt:Var name="__key__"$>
</mt:Loop>

一度__counter__ごとハッシュに入れてしまえば計算も必要なく並び順も自由自在です。

ここまで書きましたが、どんな状況で使えるのかは不明です。
いやぁ、MTって本当にいいもんですね~><

  • Index
  • Back
  • Index
  • Back
  • スマートフォンサイト構築

スタッフ

  • 平竹仁士
  • 河西裕一
  • 柳澤健一
  • 小林秀太郎
  • 丸山幸男