最近、コメントやトラックバックリストの回転が速いので、油断してるとサイドバー部のコメント表示やらトラックバック表示場所から消えてなくなってしまって、「あれ?あの時のコメント返したっけ?」なんていうことになりかねないので、全コメントリストと、全トラックバックリストの表示を追加しました。


MTの標準タグ、<MTEntries>のオプション recently_commented_on=”n” を使用して全コメントを表示させてもよかったのですが、それだと、”n” の部分にあらかじめ1000とかの数字を明示してあげなければなりません。万が一、1000以上のエントリーにコメントがついた場合、1000以上の部分に関しては表示されなくなってしまうので、やり方が今ひとつ不細工。
そこで、 MTTagInvoke 0.9 というプラグインを使用することにしました。ヒントは、Magic White さんの ●MTTagInvokeプラグイン使ってみる でもらいました。ありがとうございました。


この MTTagInvoke 0.9 というプラグインは、アトリビュートの内容を変数にできるプラグインで、つまり、MTタグがそれぞれ持っている属性を変数として使用できるようにするということです。MTEntriesタグの属性、 recently_commented_on=”n” であれば、”n” は本来数字の明示でなければならないのですが、その代わりに $MTBlogEntryCount$ タグという、エントリー総数を数えてくれるタグに置き換えることができます。


具体的にどうやるかというと、まず、MTTagInvoke 0.9 をDL解凍し、MTのプラグインフォルダへアップロードし、プラグインを使用できる状態にします。
次に、MT管理画面より、テンプレート→新しいインデックス・テンプレートを作る をクリックし、全コメント表示用のテンプレートを新規に作成します。
そのテンプレートの内容は、私の場合、メイン・インデックスのテンプレートをごそっとコピペして、不要となるメインコンテンツ部をごっそり削除し、そこへ、全コメントリストを表示するソース(サイドバー部の”最近のコメント”を加工)をぶっこんでます。以下にそいつを転記しときます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
 
<head>
:
:
割愛
:
:
<!– カレンダー –>
<div id="calender">
<? include("http://www.garaku.cc/blog/calender.php"); ?>
</div>
<!– カレンダー –>
 
<!– 中央コンテンツ –>
<div id="content">
 
<div class="blog">
 
<div class="comments-head">
全コメントリスト
</div>
 
<MTTagInvoke tag_name="MTEntries">
<MTTagAttribute name="recently_commented_on"><$MTBlogEntryCount$></MTTagAttribute>
<MTTagContent>
 
<ul><li><a href="<$MTEntryLink$>"><MTEntryTitle></a><br />
<MTComments>
└ <a href="<$MTEntryLink$>#<$MTCommentID$>">
<MTCommentAuthor></a> <$MTCommentDate format="%m/%d"$><br />
</MTComments></li></ul>
<br />
</MTTagContent>
</MTTagInvoke>

 
</div><!– blog終わり –>
</div><!– content終わり –>
<!– 中央コンテンツ終了 –>
:
:
割愛
:
:
<!– 右サイドレイアウトBOX開始–>
<div id="rightbox2">
 
</div>
<!– メインレイアウトBOX終わり –>
 
<br clear="all" />
 
</body>
</html>


青字の部分が主要な部分となります。
後は、これでできたテンプレートファイルへのリンクを適当な場所に追加するだけです。私は、サイドバー部の”最近のコメント”部の一番下に追加しました。


全トラックバックリストの表示方法も同じ内容となりますので、主要なソース部分のみ、下記へ転記しておきます。


 

<!– 中央コンテンツ –>
<div id="content">
 
<div class="blog">
 
<div class="comments-head">
全トラックバックリスト
</div>
 
<MTTagInvoke tag_name="MTPings">
<MTTagAttribute name="lastn"><$MTBlogEntryCount$></MTTagAttribute>
<MTTagContent>
 
Re: <MTPingedEntry><a href="<$MTPingedEntryLink$>"><$MTPingedEntryTitle$></a></MTPingedEntry><br />
<ul><li><a href="<$MTPingURL$>" target="_blank"><$MTPingTitle$></a><br />
<$MTPingBlogName$> <$MTPingDate format="%m/%d %X"$><br /></li>
</ul><br />
</MTPings>
 
</MTTagContent>
</MTTagInvoke>

 
</div><!– blog終わり –>
</div><!– content終わり –>
<!– 中央コンテンツ終了 –>