MTまとめサイト > テンプレート > エントリーの一覧表示で、月毎に見出しをつけたい

エントリーの一覧表示で、月毎に見出しをつけたいこのエントリーをはてなブックマークに追加 [テンプレート]

変数を利用してエントリーの投稿月を比較します。違う月になったときに、月の見出しが表示されます。

[MT4.x]

SetVarBlockタグを利用して表示させます。

MTタグ

  1. <MTEntries limit="auto">
  2. <MTEntriesHeader>
  3. <!-- thismonthに最新のエントリーの投稿月をセットします -->
  4. <MTSetVarBlock name="thismonth"><$MTEntryDate format="%m"$></MTSetVarBlock>
  5.  
  6. <!-- 最初の見出し -->
  7. <h2><$MTGetVar name="thismonth"$>月</h2>
  8. </MTEntriesHeader>
  9.  
  10. <!-- entrymonthにエントリーの投稿月をセットします -->
  11. <MTSetVar Block name="entrymonth"><$MTEntryDate format="%m"$></MTSetVarBlock>
  12.  
  13. <!-- thismonthとentrymonthの中身を比べます。同じであれば月見出しを出さず、記事一覧を出します。 -->
  14. <MTIf name="thismonth" eq="$entrymonth">
  15. <$MTEntryTrackbackData$>
  16. <$MTInclude module="ブログ記事の概要"$>
  17. <MTElse>
  18.  
  19. <!-- 月が変わった時の見出し -->
  20. <h2><MTGetVar name="entrymonth">月</h2>
  21. <$MTEntryTrackbackData$>
  22. <$MTInclude module="ブログ記事の概要"$>
  23. <!-- thismonthに新しい月をセットします -->
  24. <MTSetVarBlock name="thismonth"><$MTEntryDate format="%m"$></MTSetVarBlock></MTIf>
  25. </MTEntries>

[MT3.x]

MT3.xで同じことをしようとする場合、プラグイン固有のタグを組み合わせることで、タグの中でタグを利用することなどが出来るTagInvokeプラグインとIF分岐を拡張するCompareプラグインを利用します。
以下のタグを挿入してください。

MTタグ

  1. <MTEntries>
  2. <MTEntriesHeader>
  3.  
  4. <!-- thismonthに最新のエントリーの投稿月をセットします -->
  5. <MTTagInvoke name="setvar">
  6. <MTTagInvokeAttribute name="name">thismonth</MTTagInvokeAttribute>
  7. <MTTagInvokeAttribute name="value"><$MTEntryDate format="%m"$></MTTagInvokeAttribute>
  8. </MTTagInvoke>
  9.  
  10. <!-- 最初の見出し -->
  11. <h2><$MTGetVar name="thismonth"$>月</h2>
  12. </MTEntriesHeader>
  13.  
  14. <!-- entrymonthにエントリーの投稿月をセットします -->
  15. <MTTagInvoke name="setvar">
  16. <MTTagInvokeAttribute name="name">entrymonth</MTTagInvokeAttribute>
  17. <MTTagInvokeAttribute name="value"><$MTEntryDate format="%m"$></MTTagInvokeAttribute>
  18. </MTTagInvoke>
  19.  
  20. <!-- thismonthとentrymonthの中身を比べます。同じであれば月見出しを出さず、記事一覧を出します。 -->
  21. <MTIfEqual a="[MTGetVar name='entrymonth']" b='[MTGetVar name="thismonth']">
  22. <h3><$MTEntryTitle$></h3>
  23. <$MTEntryBody$>
  24. <MTElse>
  25.  
  26. <!-- 月が変わった時の見出し -->
  27. <h2><$MTGetVar name="entrymonth"$></h2>
  28. <h3><$MTEntryTitle$></h3>
  29. <$MTEntryBody$>
  30.  
  31. <!-- thismonthに新しい月をセットします -->
  32. <MTTagInvoke name="setvar">
  33. <MTTagInvokeAttribute name="name">thismonth</MTTagInvokeAttribute>
  34. <MTTagInvokeAttribute name="value"><$MTEntryDate format="%m"$></MTTagInvokeAttribute>
  35. </MTTagInvoke>
  36. </MTElse>
  37. </MTIfEqual>

[表示結果]

11月

エントリータイトル
エントリーの内容
エントリータイトル
エントリーの内容
エントリータイトル
エントリーの内容

10月

エントリータイトル
エントリーの内容
エントリータイトル
エントリーの内容
エントリータイトル
エントリーの内容

この記事は参考になりましたか?

   

2人中、0人が参考になったと投票しています。

ページの先頭へ戻る▲