MTで複数のブログがあって同じ日に投稿された記事を取得して記事内の最後に挿入したいと思って、簡単にできる方法を調べたが良いやり方がなかった。
そこで、色々考えてなんとか実現できたのでメモ!

マルチブログで同じ日に投稿された記事を取得して記事内にリスト表示する


1.アーカイブテンプレートで日別アーカイブを作ります
日別アーカイブには、リスト表示されるようにリンク付きのタイトルを書きます。
これを、他のブログでも行います。
<mt:entries lastn="0">
<li><span><$mt:entrydate format="%Y/%m/%d"$></span>
<a href="<mt:EntryPermalink>"><mt:EntryTitle /></a>
</li>
</mt:entries>


2.各ブログの日別アーカイブ読み込む
システムメニューのグローバルテンプレートのテンプレートモジュールで各ブログの読み込む日別アーカイブを管理できるようにします。
考え方としては、今閲覧している記事の日付を 2012/03/17/ のような形で取得します。
そして、ブログごとにディレクトリ名と連結すれば日別アーカイブのパスを作ることができます。
このパスを利用してPHPでインクルードしてくればリストで表示することができます。

<h4>同じ日に投稿された記事</h4>
<mt:SetVarBlock name="kokaibi"><$mt:entrydate format="%Y/%m/%d/"$></mt:SetVarBlock>
<?php
$upday = '<mt:var name="kokaibi">';
?>

<ul>
<?php
$file = "/home/hoge/www/hoge/" . $upday . "index.php";

if (file_exists($file)) {
 @include($file);
}
?>
</ul>


3.グローバルテンプレートを読み込む
最後に、ブログ記事のテンプレートで表示したい場所にグローバルテンプレートを読み込みます。
<$MTInclude module="同じ日の記事"$>


今回は単純に上から読み込んだ順番ですが、これを応用すればランダム表示にすることも可能です。
結構手間なのでもっと他に良い方法があったら教えてください。
AD