アーカイブのブログ記事一覧をサイドバーに表示する
「ブログ記事リスト」テンプレートを利用した各アーカイブページで MTEntries タグを利用すると、アーカイブの種類に該当するブログ記事(エントリー)のみが表示されます。例えば2007年9月のアーカイブでは、その月に投稿したブログ記事のみが表示されます。
これを利用して、アーカイブのブログ記事一覧をサイドバーに表示するカスタマイズを紹介します。このカスタマイズのポイントは、リストのタイトル表示をアーカイブの種類に合わせて切り替えるところです。
ここでは MT4 の配布テンプレートを例に説明しますが、MTタグ部分の構造は他のテンプレートでも共通に使えます。
1.月別アーカイブリストのブログ記事一覧を表示する
「デザイン」→「テンプレート」→「テンプレートモジュール」→「サイドバー(または「サイドバー2」)」に下記のタグを追加します。
<MTIf name="datebased_only_archive">
<MTIfArchiveTypeEnabled archive_type="Monthly">
<dt class="sidetitle">
List of "<$MTArchiveDate format="%B %Y"$>"
</dt>
<dd class="side">
<ul>
<MTEntries>
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
</dd>
</MTIfArchiveTypeEnabled>
</MTIf>
リストタイトル部分の MTArchiveDate に format 属性を加えて、MTArchiveDate から必要な情報(年月)のみを抽出しています。
また、MTIf タグと MTIfArchiveTypeEnabled タグで全体を括り、月別アーカイブかつ、月別アーカイブが利用可能な場合のみ表示するように制御しています。
2.カテゴリーアーカイブリストのブログ記事一覧を表示する
「デザイン」→「テンプレート」→「テンプレートモジュール」→「サイドバー(または「サイドバー2」)」に下記のタグを追加します。
<MTIf name="category_archive">
<MTIfArchiveTypeEnabled archive_type="Category">
<dt class="sidetitle">
List of "<$MTArchiveTitle$>"
</dt>
<dd class="side">
<ul>
<MTEntries>
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
</dd>
</MTIfArchiveTypeEnabled>
</MTIf>
カテゴリーアーカイブのリストタイトルは MTArchiveDate をそのまま表示させています。
こちらも、MTIf タグと MTIfArchiveTypeEnabled タグで全体を括り、カテゴリーアーカイブかつ、カテゴリーアーカイブが利用可能な場合のみ表示するように制御しています。
なお、カテゴリー配下のサブカテゴリーを含めたい場合は、下のように MTEntries を MTEntriesWithSubCategories にします。
<MTIf name="category_archive">
<MTIfArchiveTypeEnabled archive_type="Category">
<dt class="sidetitle">
List of "<$MTArchiveTitle$>"
</dt>
<dd class="side">
<ul>
<MTEntriesWithSubCategories>
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntriesWithSubCategories>
</ul>
</dd>
</MTIfArchiveTypeEnabled>
</MTIf>
ここでは月別アーカイブとカテゴリーアーカイブをサンプルにしましたが、他のアーカイブでも色々試してみてください。
2007.11.22
各サンプルの MTIf タグに誤りがありました(メインページにも適用される変数を使用していました)ので修正致しました。
- Movable Typeのカテゴリーアーカイブページでブログ全体のブログ記事一覧を表示する
- Movable Type 5.0(MT5.0)以降でアーカイブURLにサブドメインを適用する
- MTArchiveList タグブロック内で使えるテンプレートタグ
- 予約変数一覧 for Movable Type 4.2
- アーカイブページのリストの表示内容が異なる理由
- サイドバーの表示をメインページと同じにする
- 予約変数一覧 for Movable Type 4(その2)
- 予約変数一覧 for Movable Type 4(その1)
- Movable Type 4 のアーカイブリスト表示の仕組みを探る
- アーカイブページに「最近のコメント」「最近のトラックバック」を表示する
こんばんわ
何度もすいません><
このエントリーずっとまっていたので すぐに導入してみたのですが
月別アーカイヴリストはちゃんとできたので カテゴリーのほうも同じように一覧表示できるようにしてみたのですが 再構築のときにエラーがでます
Can't call method "entry_based" on an undefined value at lib/MT/Template/ContextHandlers.pm line 4547
という表示でした
これはいったいなにがおかしいのでしょうか、、、、、
なにか わかりましたら よろしくおねがいします><
>ましゅさん
こんにちは。
ご返事遅くなり申し訳ございません。
ご質問の件ですが、当方のサンプルに誤りがありました。
ご迷惑おかけして申し訳ございません。
先ほど修正致しましたので、月別アーカイブリスト・カテゴリーリスト、いずれも差し替え願えますでしょうか。
それではよろしくお願い致します。
おはようございます(*^-^*)
お返事ありがとうございます
早々差し替えました
問題なく動作しております
ありがとうございましたー
>ましゅさん
こんばんは。
ご連絡ありがとうございました。
ではでは!