エントリーの一覧表示で、月毎に見出しをつけたい
[テンプレート]
変数を利用してエントリーの投稿月を比較します。違う月になったときに、月の見出しが表示されます。
[MT4.x]
SetVarBlockタグを利用して表示させます。
MTタグ
<MTEntries limit="auto"><MTEntriesHeader><!-- thismonthに最新のエントリーの投稿月をセットします --><MTSetVarBlock name="thismonth"><$MTEntryDate format="%m"$></MTSetVarBlock><!-- 最初の見出し --><h2><$MTGetVar name="thismonth"$>月</h2></MTEntriesHeader><!-- entrymonthにエントリーの投稿月をセットします --><MTSetVar Block name="entrymonth"><$MTEntryDate format="%m"$></MTSetVarBlock><!-- thismonthとentrymonthの中身を比べます。同じであれば月見出しを出さず、記事一覧を出します。 --><MTIf name="thismonth" eq="$entrymonth"><$MTEntryTrackbackData$><$MTInclude module="ブログ記事の概要"$><MTElse><!-- 月が変わった時の見出し --><h2><MTGetVar name="entrymonth">月</h2><$MTEntryTrackbackData$><$MTInclude module="ブログ記事の概要"$><!-- thismonthに新しい月をセットします --><MTSetVarBlock name="thismonth"><$MTEntryDate format="%m"$></MTSetVarBlock></MTIf></MTEntries>
[MT3.x]
MT3.xで同じことをしようとする場合、プラグイン固有のタグを組み合わせることで、タグの中でタグを利用することなどが出来るTagInvokeプラグインとIF分岐を拡張するCompareプラグインを利用します。
以下のタグを挿入してください。
MTタグ
<MTEntries><MTEntriesHeader><!-- thismonthに最新のエントリーの投稿月をセットします --><MTTagInvoke name="setvar"><MTTagInvokeAttribute name="name">thismonth</MTTagInvokeAttribute><MTTagInvokeAttribute name="value"><$MTEntryDate format="%m"$></MTTagInvokeAttribute></MTTagInvoke><!-- 最初の見出し --><h2><$MTGetVar name="thismonth"$>月</h2></MTEntriesHeader><!-- entrymonthにエントリーの投稿月をセットします --><MTTagInvoke name="setvar"><MTTagInvokeAttribute name="name">entrymonth</MTTagInvokeAttribute><MTTagInvokeAttribute name="value"><$MTEntryDate format="%m"$></MTTagInvokeAttribute></MTTagInvoke><!-- thismonthとentrymonthの中身を比べます。同じであれば月見出しを出さず、記事一覧を出します。 --><MTIfEqual a="[MTGetVar name='entrymonth']" b='[MTGetVar name="thismonth']"><h3><$MTEntryTitle$></h3><$MTEntryBody$><MTElse><!-- 月が変わった時の見出し --><h2><$MTGetVar name="entrymonth"$></h2><h3><$MTEntryTitle$></h3><$MTEntryBody$><!-- thismonthに新しい月をセットします --><MTTagInvoke name="setvar"><MTTagInvokeAttribute name="name">thismonth</MTTagInvokeAttribute><MTTagInvokeAttribute name="value"><$MTEntryDate format="%m"$></MTTagInvokeAttribute></MTTagInvoke></MTElse></MTIfEqual>
[表示結果]
11月
- エントリータイトル
- エントリーの内容
- エントリータイトル
- エントリーの内容
- エントリータイトル
- エントリーの内容
10月
- エントリータイトル
- エントリーの内容
- エントリータイトル
- エントリーの内容
- エントリータイトル
- エントリーの内容
この記事は参考になりましたか?
2人中、0人が参考になったと投票しています。