mt:Blogs(mt:Websites)で id順に並べたい
公開日 : 2016-02-03 14:54:05
sort_by sort_order 指定してみたんだけど、効かない。
- MT::Template::Tags::Blog::_hdlr_blogs
ハードコーディングされてるんだから。。。
$args{'sort'} = 'name';
$args{direction} = 'ascend';
my @blogs = MT::Blog->load( \%terms, \%args );
こういうところを何とかして欲しいものです。
<mt:Websites>
<mt:WebsiteId setvar="website_id">
<mt:SetHashVars name="website_data">
name=<mt:WebsiteName>
url=<mt:WebsiteURL>
</mt:SetHashVars>
<mt:SetHashVar name="websites">
<mt:SetVar name="$website_id" value="$website_data">
</mt:SetHashVar>
</mt:Websites>
<mt:Loop name="websites" sort_by="key" >
blog_id : <mt:Var name="__key__">
blog_name : <mt:Var name="__value__" key="name">
blog_url : <mt:Var name="__value__" key="url">
</mt:Loop>
追記 : blog_id が10超えるときは 別途並び順用の変数にキーのみ入れて MTLoop sort_by="value numeric" というツッコミが入りました。誰か修正版やっといて。。
追記: GetHashVarプラグインを使うか ObjectLoop プラグインを使えば素直に解決できる
<mt:LoopWithSort name="websites" kind="num" scope="key" order="ascend">
</mt:LoopWithSort>
<mt:ObjectLoop model="website" sort_by="id" sort_order="ascend">
</mt:ObjectLoop>