Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
記事 n 件をランダムに取得するテンプレート - RandomArray プラグインバージョン
<mt:DynamicMTML>
<mt:Ignore section="解説 01">
変数を初期化します。
</mt:Ignore>
<mt:SetVar name="ids">
<mt:SetVar name="entries">
<mt:Ignore section="解説 02">
MTAppjQueryタグの付いた記事をすべて取り出します。
同じテンプレート内ですでに出力された記事は unique="1" で除きます(スタティックとダイナミック
の混在だともう少し丁寧な処理が必要だけど)。
</mt:Ignore>
<mt:Entries tag="MTAppjQuery" unique="1" lastn="0">
<mt:Ignore section="解説 03">
記事IDを一旦変数に入れ、配列変数idsに追加していきます。
また同時に、そのIDをキーに、最終的に出力したい形を値にしたハッシュ変数entriesを作って行きます。
</mt:Ignore>
<mt:EntryID setvar="id">
<mt:SetVarBlock name="ids" function="push"><mt:Var name="id"></mt:SetVarBlock>
<mt:SetVarBlock name="entries" key="$id">
<li><a href="<mt:EntryPermalink>"><mt:EntryTitle escape="html"></a></li>
</mt:SetVarBlock>
</mt:Entries>
<mt:Ignore section="解説 04">
MTRandomArrayタグで配列変数ids(name="ids")から5件(limit="5")をランダムに取り出した配列をrand_idsにセット(setvar="rand_ids")します。
</mt:Ignore>
<mt:RandomArray name="ids" limit="5" setvar="rand_ids">
<mt:Ignore section="解説 06">
配列変数rand_idsをループで回し、その値(記事ID)をキーに指定して先程のハッシュ変数 entries からHTMLを取り出します。
</mt:Ignore>
<mt:Loop name="rand_ids">
<mt:If name="__first__"><ul></mt:If>
<mt:Var name="entries" key="$__value__">
<mt:If name="__last__"></ul></mt:If>
</mt:Loop>
</mt:DynamicMTML>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment