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

2011年5月9日 by Sachio Maruyama

こんにちは。MTダァィスキー!!丸山です。
またまた前回の記事の続きなのです。

前回はハッシュのキーの値をゼロ詰めして数値型モドキの出力を再現しましたが、どうもこの方法だと値に小数点が含まれていた場合にうまく処理できないっぽいです...orz
mt_customfield_sort05.gif

この問題を回避するために、ハッシュへ入れる段階で値を整数にしてからゼロ詰めしてみます。

<mt:Entries>
	<$mt:cf_price setvar="price"$>
	<mt:Var name="price" op="*" value="10000" zero_pad="10" setvar="price"$>
	<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_sort06.gif

やはり小数点が無ければ問題ないっぽいので、あとは出力時に値を元の数字に戻してあげます。

<mt:Entries>
	<$mt:cf_price setvar="price"$>
	<mt:Var name="price" op="*" value="10000" zero_pad="10" setvar="price"$>
	<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="10000"$>円</th>
		<td><$mt:Var name="__value__"$></td>
	</tr>
<mt:If name="__last__">
</table>
</mt:If>
</mt:Loop>

出力結果
mt_customfield_sort07.gif

これで本当にもう何も恐くない><

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

スタッフ

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