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

    この記事をシェア

    この記事を書いた人

    Roy Okuwaki

    「かたつむりくんのWWW」を運営している Roy Okuwaki(tinybeans)です。bit part 合同会社 代表社員。2007年から、Movable Type や Craft CMS などの CMS、Web 開発、AI ツールの使い方について書いています。

    プロフィールを見る →

    関連記事