複数ブログのブログ記事を時間順に1件ずつ表示する

複数ブログのブログ記事を時間順に1件ずつ表示する

Posted at November 12,2009 1:55 AM
Tag:[MovableType]

MultiBlog タグに mode="context" を付与した場合や、Entries タグに blog_ids="children" を付与すれば、複数ブログのタグを時間順に表示することができますが、それぞれのブログの件数を制限することはできません(「blog_ids="children"」はMovable Type 5以降で利用可能)。

例えば、ウェブサイト配下に 3 つのブログがあり、ウェブサイトに各ブログの最新記事1件を時間順に並べる場合などです。

このエントリーでは、3つのブログのブログ記事が次のように(新着順に)並んでいても、
一括編集画面

このように、それぞれのブログの最新記事1件を表示するカスタマイズを紹介します。
それぞれのブログの最新記事1件を表示

上記の表示は以下のサブテンプレートで実現できると思いますので、試してみてください。

1.MultiBlog タグの場合

<mt:MultiBlog mode="context">
  <mt:Entries lastn="0">
    <mt:EntriesHeader>
<ul>
    </mt:EntriesHeader>
    <mt:BlogName setvar="blog_name" />
    <mt:var name="flag" value="0" />
    <mt:loop name="list">
      <mt:if name="__value__" eq="$blog_name">
        <mt:var name="flag" value="1" />
      </mt:if>
    </mt:loop>
    <mt:unless name="flag">
  <li><mt:BlogName />:<mt:EntryTitle /></li>
      <mt:setVar name="push(list)" value="$blog_name" />
    </mt:unless>
    <mt:EntriesFooter>
</ul>
    </mt:EntriesFooter>
  </mt:Entries>
</mt:MultiBlog>

2.MTEntries タグの場合

<mt:Entries blog_ids="children" lastn="0">
  <mt:EntriesHeader>
<ul>
  </mt:EntriesHeader>
  <mt:BlogName setvar="blog_name" />
  <mt:var name="flag" value="0" />
  <mt:loop name="list">
    <mt:if name="__value__" eq="$blog_name">
      <mt:var name="flag" value="1" />
    </mt:if>
  </mt:loop>
  <mt:unless name="flag">
  <li><mt:BlogName />:<mt:EntryTitle /></li>
    <mt:setVar name="push(list)" value="$blog_name" />
  </mt:unless>
  <mt:EntriesFooter>
</ul>
  </mt:EntriesFooter>
<mt:var name="__counter__" />
</mt:Entries>

2010.04.14
「blog_ids="site"」を「blog_ids="children"」に変更しました("site"は、Movable Type 5.0ベータ版で設定可能となっていた値)。また、「blog_ids="children"」の利用可能バージョンを追記しました。

関連記事
zenback
人気エントリー
トラックバックURL


コメント

はじめまして。
いつもMT構築の際には参考にさせていただいています。

ちょっと全Versionで試したわけではないので
versionによる違いかもしれませんが、
MTOSで「blog_ids="site"」を使用したらエラーが出てしまいました。
そのあたりも注釈などで書いてあるとうれしいな、と思いコメントしました。

[1] Posted by えど : April 13, 2010 11:36 AM

>えどさん
はじめまして。
ご質問の件ですが、エントリー本文を修正致しましたのでご確認ください。
ご指摘ありがとうございました!

[2] Posted by yujiro logo : April 14, 2010 1:33 AM
コメントする
greeting

*必須

*必須(非表示)


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

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

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

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