アーカイブのブログ記事一覧をサイドバーに表示する

アーカイブのブログ記事一覧をサイドバーに表示する

Posted at November 12,2007 3:02 AM
Tag:[Customize, MovableType]

アーカイブのブログ記事一覧「ブログ記事リスト」テンプレートを利用した各アーカイブページで 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 タグに誤りがありました(メインページにも適用される変数を使用していました)ので修正致しました。

関連記事
トラックバックURL


コメント

こんばんわ
何度もすいません><
このエントリーずっとまっていたので すぐに導入してみたのですが
月別アーカイヴリストはちゃんとできたので カテゴリーのほうも同じように一覧表示できるようにしてみたのですが 再構築のときにエラーがでます
Can't call method "entry_based" on an undefined value at lib/MT/Template/ContextHandlers.pm line 4547
という表示でした
これはいったいなにがおかしいのでしょうか、、、、、
なにか わかりましたら よろしくおねがいします><

[1] Posted by ましゅ : November 14, 2007 2:55 AM

>ましゅさん
こんにちは。
ご返事遅くなり申し訳ございません。

ご質問の件ですが、当方のサンプルに誤りがありました。
ご迷惑おかけして申し訳ございません。
先ほど修正致しましたので、月別アーカイブリスト・カテゴリーリスト、いずれも差し替え願えますでしょうか。
それではよろしくお願い致します。

[2] Posted by yujiro logo : November 22, 2007 1:42 PM

おはようございます(*^-^*)
お返事ありがとうございます
早々差し替えました
問題なく動作しております
ありがとうございましたー

[3] Posted by ましゅ : November 23, 2007 7:46 AM

>ましゅさん
こんばんは。
ご連絡ありがとうございました。
ではでは!

[4] Posted by yujiro logo : November 23, 2007 7:51 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)