MovableType カスタムフィールドの値でちゃんと並び替え(r ...その2

2011年4月25日 by Sachio Maruyama

こんにちは。MTだ〜ぃ好き丸山です。
前回の記事の続きなのです。

前回は値をハッシュに入れてからの出力時に「value」を基準にソートしました。
ですが、カスタムフィールドの値に限らず「key」基準にしたい場合は数値としてみてね☆テヘ...という指定の"numeric"が使用できないっぽいです。

<mt:Loop name="hogehoge" sort_by="value numeric"> ...◯
<mt:Loop name="hogehgoe" sort_by="key numeric"> ...×ダメ

そんな時は値を適当にゼロ詰めして、桁を揃えてみます。

<mt:Entries>
	<mt:SetVarBlock name="price"><$mt:cf_price zero_pad="10"$></mt:SetVarBlock>
	<mt:SetVarBlock name="entries{$price}"><$mt:EntryTitle$></mt:SetVarBlock>
</mt:Entries>

<mt:Loop name="entries" sort_by="key">
<mt:If name="__first__">
<table>
</mt:If>
	<tr>
		<th><$mt:Var name="__key__"$>円</th>
		<td><$mt:Var name="__value__"$></td>
	</tr>
<mt:If name="__last__">
</table>
</mt:If>
</mt:Loop>

出力結果
mt_customfield_sort03.gif

なんとなくできているっぽいので、出力時に0を足して余分な桁を削ります。

<mt:Entries>
	<mt:SetVarBlock name="price"><$mt:cf_price zero_pad="10"$></mt:SetVarBlock>
	<mt:SetVarBlock name="entries{$price}"><$mt:EntryTitle$></mt:SetVarBlock>
</mt:Entries>

<mt:Loop name="entries" sort_by="key">
<mt:If name="__first__">
<table>
</mt:If>
	<tr>
		<th><$mt:Var name="__key__" op="+" value="0"$>円</th>
		<td><$mt:Var name="__value__"$></td>
	</tr>
<mt:If name="__last__">
</table>
</mt:If>
</mt:Loop>

出力結果
mt_customfield_sort04.gif

もう何も恐くない><

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

スタッフ

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