記事 n 件をランダムに取得するテンプレート - RandomArray プラグインバージョン
2014-05-17
1分で読了
更新: 2025-12-14
目次
「記事 n件をランダムに表示するPowerCMSのテンプレート | PowerCMS ブログ」に触発され、こんな感じの方法はどうだろうということで書いてみます。
bit part では、指定した配列からランダムに要素を取り出して配列で返す MTRandomArray タグを提供する「RandomArray プラグイン」を公開しています。
これを使うと、例えば「MTAppjQueryタグの付いた記事をランダムに5件表示したい」というのを以下のようなテンプレートで実現できます。
解説
変数を初期化します。
MTAppjQueryタグの付いた記事をすべて取り出します。 同じテンプレート内ですでに出力された記事は unique="1" で除きます(スタティックとダイナミック の混在だともう少し丁寧な処理が必要だけど)。
略
記事IDを一旦変数に入れ、配列変数idsに追加していきます。 また同時に、そのIDをキーに、最終的に出力したい形を値にしたハッシュ変数entriesを作って行きます。
MTRandomArrayタグで配列変数ids(name="ids")から5件(limit="5")をランダムに取り出した配列をrand_idsにセット(setvar="rand_ids")します。
配列変数rand_idsをループで回し、その値(記事ID)をキーに指定して先程のハッシュ変数entriesからHTMLを取り出します。
以上です。
ソースコードに解説を書いたものは以下の Gist でどうぞ。