株式会社ぺいじず

2019.08.27

Movable Type 7:複数のコンテンツタイプをまとめて一覧表示する

Movable Type r.4502 以降は、
コンテンツタイプを複数指定できなくなってしまったので、
仕方なく <mt:Loop> で出力しました。

下記はトップページに5件、
イベントとセミナーをまとめて表示することを想定しています。

<mt:SetVar name="limit" value="5"$>
 
<mt:Contents content_type="イベント" limit="$limit">
<mt:SetVarBlock name="key"><mt:ContentDate format="%Y%m%d%H%M%S"><mt:ContentID pad="1"></mt:SetVarBlock>
<mt:SetVarBlock name="news" key="$key"><li><a href="<mt:ContentPermalink>"><mt:ContentLabel></li></mt:SetVarBlock>
</mt:Contents>
 
<mt:Contents content_type="セミナー" limit="$limit">
<mt:SetVarBlock name="key"><mt:ContentDate format="%Y%m%d%H%M%S"><mt:ContentID pad="1"></mt:SetVarBlock>
<mt:SetVarBlock name="news" key="$key"><li><a href="<mt:ContentPermalink>"><mt:ContentLabel></li></mt:SetVarBlock>
</mt:Contents>
 
<mt:SetVar name="count" value="0"$>
<mt:Loop name="news" sort_by="key numeric reverse">
<mt:If name="__first__"><ul></mt:If>
<mt:SetVar name="count" value="1" op="+">
<mt:If name="count" le="$limit"><mt:Var name="__value__"></mt:If>
<mt:If name="__last__"></ul></mt:If>
</mt:Loop>

表示されない5件が無駄ループなわけですが許容としてます。
全件表示したい場合は、limit関連とcount関連を削除してください。
あと、<li>~</li>はモジュール化した方が、修正は楽です。

※現在ぺいじずでは、Movable Typeを使ってWeb制作をする仲間を募集中です。
ご興味のある方は採用情報をご確認くださいませ。

関連記事

株式会社ぺいじず

私たちは、東京都で創業33年の制作会社です。
長年のマニュアル制作で培われたライティングスキルを活かし、効果的なWebサイトをご提案しています。