「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
記事内のカスタムフィールドの画像をランダムに選んで出力する
MTQに以下のような質問があがっていました。
記事入力のカスタムフィールドで4枚画像を登録し、一覧ページに記事の1枚目の画像と4枚目の画像をすべての記事のそれぞれの画像からランダムで計12枚出力させたいのですが可能でしょうか?
この質問に答えます。
1.考え方
ご質問のようなことを行うには、以下のように処理することが考えられます。
- 全記事からランダムに12件の記事を読み込み、順に出力する
- 個々の記事を出力する際に、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>