カテゴリごとに10件抽出して、それぞれをタブで表示切替など。
もちろん、カテゴリなしの全件表示も必要なの。
それぞれのカテゴリで10件ずつ抽出。
<mt:Entries lastn=”10″ categories=”お知らせ”>
そんでもって配列に格納するんだけど、お知らせ系なので日付順にしたいから、keyは日付。
<mt:EntryDate format=”%Y%m%d%H%M%S” setvar=”key”>
で、これを配列に格納。
<mt:SetVarBlock name=”output{$key}”>入れたい項目をあれこれ</mt:SetVarBlock>
ループで出しまーす!
<mt:Loop name=”output” sort_by=”key”>
<mt:var name=”__value__”>
</mt:Loop>
…
6件しかないのはなんで??? lastnが効いてないじゃん?
……前にも同じようなことした気がうっすらしてきた。
なんだっけ?
答え:同じkeyになってしまったものがあって、その配列の内容が上書きされ、件数が減った。
あーーーーっ。そうだった!
ということで、keyを変更。
日付をセットしておいたところに、個別値となるIDを追加。念のため、6桁ゼロ埋めにしておく。
<mt:EntryDate format=”%Y%m%d%H%M%S” setvar=”key”>
<mt:SetVarBlock name=”key” append=”1″><mt:EntryId pad=”1″></mt:SetVarBlock>
……件数はちゃんと10件になったけど、表示順がおかしくね?
そういえば、これも前に同じような罠にかかったことが…。
答え:numericとreverse
完成版は以下の通り!
<mt:Entries lastn="10" categories="お知らせ">
<mt:EntryDate format="%Y%m%d%H%M%S" setvar="key">
<mt:SetVarBlock name="key" append="1"><mt:EntryId pad="1"></mt:SetVarBlock>
<mt:SetVarBlock name="output{$key}">入れたい項目をあれこれ</mt:SetVarBlock>
</mt:Entries>
<mt:Loop name="output" sort_by="key numeric reverse">
<mt:var name="__value__">
</mt:Loop>
よくやる処理系のはずなのに、よく忘れるやつ。
忘れずにオボエておきましょー。
コメント