記事 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 でどうぞ。

    この記事をシェア

    関連記事