記事内のカスタムフィールドの画像をランダムに選んで出力する

MTQに以下のような質問があがっていました。

記事入力のカスタムフィールドで4枚画像を登録し、一覧ページに記事の1枚目の画像と4枚目の画像をすべての記事のそれぞれの画像からランダムで計12枚出力させたいのですが可能でしょうか?

この質問に答えます。

1.考え方

ご質問のようなことを行うには、以下のように処理することが考えられます。

  1. 全記事からランダムに12件の記事を読み込み、順に出力する
  2. 個々の記事を出力する際に、0か1の乱数を発生させ、0なら1件目の画像を出力し、1なら4件目の画像を出力する

記事をランダムに読み込むことについては、すでにMTQで安倍さんから回答があり、RandomEntriesというプラグインを使えば解決できます。
また、乱数を発生させることは、拙作のVarExpandというプラグインで行うことができます。

2.テンプレートの例

上記2つのプラグインをインストールした上で、テンプレートを以下のように組めば、希望の動作になると思います。

<mt:Entries random="1" limit="12">
  <$mt:SetVarFormula name="rnd" formula="int(rand()*2)"$>
  <mt:If name="rnd" eq="0">
    1件目の画像を出力する処理
  <mt:Else>
    4件目の画像を出力する処理
  </mt:If>
</mt:Entries>

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください