応用
記事一覧で最初の3件は違うhtml構造にする
記事の一覧などで、一部だけhtml構造を変えたい場合の方法です。
例えば記事一覧で
最初の3件はサムネイル画像と記事タイトルを、他の記事は記事タイトルだけを表示
としたい場合があります。
このような場合はmt:Ifで対応します。
使用するMTタグ
mt:Ifは条件分岐に使用するブロックタグです。
mt:Ifに、特殊な予約変数「__counter__」を使うことによって、mt:Entriesでループする毎に、1ずつ変数内の数値を増やすことができます。
同時にleでループする回数を指定します。
指定した件数以下の場合に、mt:If内の記述を実行する仕組みです。
ループ回数の変数設定は以下のものがあります。
- __first__ ... ループ出力の最初である場合 true (1) となる
- __last__ ... ループ出力の最後である場合 ture (1) となる
- __odd__ ... ループ出力の奇数回目の場合 ture (1) となる
- __even__ ... ループ出力の偶数回目の場合 ture (1) となる
- __index__ ... ループのインデックスを格納する
- __counter__ ... ループした回数を格納する
下記のサンプルでは「記事を5件取得して、最初の3件だけサムネイル画像を表示する」という記述をしています。
記述サンプル
記述例
<mt:Entries lastn="5">
<div>
<mt:If name="__counter__" le="3">
<mt:EntryAssets lastn="1">
<div><img src="<$mt:AssetThumbnailURL width="160"$>" /></div>
</mt:EntryAssets>
</mt:If>
<h1><$mt:EntryTitle$></h1>
<p><$mt:EntryBody words="100"$>...</p>
</div>
</mt:Entries>
出力例
記事タイトル1
記事タイトル1の本文...
記事タイトル2
記事タイトル2の本文...
記事タイトル3
記事タイトル3の本文...
記事タイトル4
記事タイトル4の本文...
記事タイトル5
記事タイトル5の本文...
※スタイルシートは別途用意してください。