MTで他のブログの最新記事をトップページに表示させる方法
Posted on | 2009年 2月 20日 | Permalink
Movable Typeのテンプレートタグのひとつで複数のブログのデータを扱うために用意されている。
今さら感はぬぐいきれませんが、自分のための備忘録としてMTを使ったサイト構築のチップス(つっても広く使われてると思う)を書き留めておきます。タイトルにある通り、MTで複数のブログの最新記事をひとつのページにまとめて表示させるやり方。しばしば、こういう状況をサイト設計に盛り込む機会があるのですが、ここらで自分のためにもまとめときます。
つい先日カットオーバーしたばかりの案件でもこの方法を採用しました。表題の通りなのですが、よりわかりやすく言うと例えば「スタッフブログ」と「お知らせ」を別の2つのブログとしてMTで作ったとします。そう、MTってひとつインストールすれば、いくつでもブログを立ち上げられるのが便利なのですよね。テンプレートいじってデザインを統一しておけば、2つのブログはあたかもひとつのサイトのそれぞれ一部として見えるようにできるわけです。
このように同一サイトでブログを複数立てた時、例えばトップページに全てのブログの最新記事をまとめてみたいということがあるでしょう。MTではこれが可能になります。考え方としては、それぞれ独立している複数ブログの記事を、まとめ役のもうひとつのブログを作ってそこに表示する、といったところでしょうか。
例で言えば、「スタッフブログ」「お知らせ」という2つのブログの他に、「トップページ」という便宜上のブログを作ります。この「トップページ」ブログでは記事を作成することは想定していません。ただ単に他の2ブログの記事をまとめて表示するためだけの存在。「トップページ」ブログのテンプレートをいじいじして本来のトップページのデザインを反映させたら、あとはMTタグを組み込む。
上記の方法を実現させるために利用するのは<MTMultiBlog>というMTタグです。トップページのテンプレートの中で、他のブログの記事を表示させたいところへ以下のように埋め込みます。
<MTMultiBlog include_blogs=”1″>
<MTEntries lastn=”5″>
<li><$MTEntryTitle$></li>
</MTEntres>
</MTMultiBlog>
こんな感じになるのかな。<MTMultiBlog>にinclude_blogs=”1″という属性を与えているのは、ブログIDが1のブログのデータを扱いますよということ。例えば、include_blogs=”1,2″などと並記するといくつものブログのデータをまとめて扱えます。<$MTEntries$>についてるlastn=”5″で、最新の5記事。<$MTEntryTitle$>で記事タイトルですね。これをリスト表示。そんな感じ。
とまあこれで他のブログから記事を表示させることができるのですが、ミソはここから。上の手順だけではトップページ以外のブログで記事をアップしただけではトップページに反映されません。ブログ記事を書いた後にわざわざ「トップページ」ブログの管理画面に行って再構築してはじめて反映したページが生成されます。これではとても面倒ですね。
この煩わしさを解決する方法があります。「トップページ」ブログの管理画面で、プラグイン→MultiBlogの設定をしてやります。トリガーの設定です。トリガー、つまり引き金という意味ですね。あるアクションがあればこういう動作を返すというものです。他のブログからエントリを公開した時に、「トップページ」ブログのメインページを再構築するように設定してやればOKです。これで他のブログでエントリを公開すると同時に、トップページが再構築されて新しい記事が表示された状態になってくれます。
関連する(かもしれない)記事
コメント
コメントをする