全エントリーリスト・全コメントリスト・全トラックバックリストを表示

全エントリーリスト・全コメントリスト・全トラックバックリストを表示

Posted at May 9,2005 11:55 PM
Tag:[Comment, Customize, Entry, MovableType, MTTagInvoke, Trackback]

Movable Type で全てのエントリー・コメントおよびトラックバックを表示するカスタマイズです。全コメントリストについての参考記事は下記です。ありがとうございました。

我楽全コメントリスト、全トラックバックリスト表示。

まず全コメントリストを表示するためのカスタマイズです。これは「最近のコメント」のタグを修正して

<MTEntries recently_commented_on="<$MTBlogEntryCount$>">
<a href="<$MTEntryLink$>"><MTEntryTitle></a>
<br />
<MTComments>
└ <a href="<$MTEntryLink$>#c<$MTCommentID$>">
<MTCommentAuthor></a> <$MTCommentDate format="%m/%d"$><br />
</MTComments>
</MTEntries>

と、最初の行の recently_commented_on に全エントリー数である <$MTBlogEntryCount$> を指定すれば全てのエントリーに対するコメントを表示できそうですが、この部分にMT変数タグを指定すると再構築でエラーとなります。そこで MTTagInvoke プラグインを利用して、

<MTEntries recently_commented_on="<$MTBlogEntryCount$>">
<MTTagInvoke tag_name="MTEntries">
<MTTagInvokeAttribute name="recently_commented_on"><$MTBlogEntryCount$></MTTagInvokeAttribute>
<MTTagInvokeContent>
<a href="<$MTEntryLink$>"><MTEntryTitle></a>
<br />
<MTComments>
└ <a href="<$MTEntryLink$>#c<$MTCommentID$>">
<MTCommentAuthor></a> <$MTCommentDate format="%m/%d"$><br />
</MTComments>
</MTTagInvokeContent>
</MTTagInvoke>
</MTEntries>

とすることで表示できるようになります。MTTagInvoke プラグインについては個別エントリーアーカイブに同一カテゴリーのエントリーを表示を参照ください。

注:MTTagInvoke のタグ名をバージョン 1.0 の内容に変更しています。

次に、全トラックバックリストはTrackback元記事表示で紹介した MTPingedEntry プラグインを利用した場合、下記のようなタグになります。

<div class="side">
<MTPings sort_order="descend">
<a href="<$MTPingURL$>" target="_blank" title="<$MTPingExcerpt$>"><$MTPingTitle$></a><br />
└ →<MTPingedEntry><a href="<$MTPingedEntryLink$>"><$MTPingedEntryTitle$></a></MTPingedEntry><br/>
[<$MTPingBlogName$>] <$MTPingDate format="%m/%d %X"$><br/>
</MTPings>
</div>

ここでは MTTagInvoke は使用しておりません。これは MTPings タグの仕様で、何も指定しない場合は「システム全体で受けたすべてのトラックバックのリストを表示」になります。

sort_order="descend"

は新着順に表示するための指定です。逆にする場合は

sort_order="ascend"

となります。

全エントリーリストは、Movable Type がデフォルトで用意している「アーカイブページ」のデフォルトで設定されているタグ

<MTArchiveList>
<a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a><br />
</MTArchiveList>

で実現できますが、MTEntries を用いることでも可能ですので紹介しておきます。
次のリストはタイトル順にソートして一覧表示をする例です。

<MTEntries sort_by="title" sort_order="ascend">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
</MTEntries><br />

カテゴリー別にまとめるには下記のようにします。これはユーザー・マニュアルに掲載されているものです。

<MTCategories>
<$MTCategoryLabel$><br />
<MTEntries sort_by="title" sort_order="descend">
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
</MTEntries><br />
</MTCategories>

MTEntries タグは sort_by を指定することで全てのエントリーを表示してくれるようです。ということで一番最初の全コメントリストは、

<MTEntries sort_by="modified_on">
<a href="<$MTEntryLink$>"><MTEntryTitle></a>
<br />
<MTComments>
└ <a href="<$MTEntryLink$>#c<$MTCommentID$>">
<MTCommentAuthor></a> <$MTCommentDate format="%m/%d"$><br />
</MTComments>
</MTEntries>

とすれば同様の表示をすることができます(こちらはエントリー更新順の模様)。

以上です。いずれも再構築時間の問題がありますので、自動的に再構築しない設定にされることをお勧めします。

2006.10.02
MTTagInvoke 1.0 の記述を追加しました。

2006.11.23
サンプルリストを MTTagInvoke 1.0 の内容に変更しました。

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


トラックバック

こんにちは? from FX初心者の必勝法日経ニュースブログ
こんにちは?... [続きを読む]

Tracked on June 12, 2007 12:42 PM

コメントとトラックバックのリスト一覧を作りました from 自然観察Blog
エントリーの数に対して、コメントやトラバの数はめっきり少ない当サイトですが、せっ... [続きを読む]

Tracked on October 11, 2007 11:12 AM
コメント

そうなんですよねぇ。再構築時間の問題によってTBなんかでエラーにならんかと心配だったり。(苦笑) でも、再構築を自動にしておかないと即座に反映されないし・・・。

痛し痒しですなー。

[1] Posted by Border. : May 10, 2005 1:15 AM

>Border.さん
こんにちはー。
コメントありがとうございます。

たしかにその通りですね。
部分的に再構築できる機能があるとありがたいのですが。

[2] Posted by yujiro : May 10, 2005 11:28 AM

表示するコメント数を指定するにはどのようにすればよろしいのでしょうか。lastnで指定しても上手くいかないようです。何も指定しないと、20件くらいずらっと表示されてかなり長くなってしまいます。何か上手い方法があるのでしょうか。

[3] Posted by yusuke : May 11, 2005 11:21 PM

>yusukeさん
こんばんは。
ご質問の件ですが、例えばエントリー毎に3件のコメントを表示する場合、一番最初のリストの場合は、

<MTTagInvoke tag_name="MTEntries"> <MTTagAttribute name="recently_commented_on"><$MTBlogEntryCount$></MTTagAttribute> <MTTagContent> <a href="<$MTEntryLink$>"><MTEntryTitle></a> <br /> <MTComments lastn="3"> └ <a href="<$MTEntryLink$>#c<$MTCommentID$>"> <MTCommentAuthor></a> <$MTCommentDate format="%m/%d"$><br /> </MTComments> </MTTagContent> </MTTagInvoke>

一番最後のリストの場合は、

<div class="side"> <MTEntries sort_by="modified_on"> <a href="<$MTEntryLink$>"><MTEntryTitle></a> <br /> <MTComments lastn="3"> └ <a href="<$MTEntryLink$>#c<$MTCommentID$>"> <MTCommentAuthor></a> <$MTCommentDate format="%m/%d"$><br /> </MTComments> </MTEntries> </div>

とすれば表示されるようです。ご質問の解釈が誤っておりましたらお許しください。

以上です。
それではどうぞよろしくお願い致します。

[4] Posted by yujiro : May 12, 2005 11:47 PM

こんにちは。早速の情報有難うございます。たとえば、全コメントのうち、最新の10件のみを表示するという方法は不可能でしょうか。よろしくお願いします。

[5] Posted by yusuke : May 14, 2005 12:35 PM

>yusukeさん
こんばんは。
エントリー毎にコメントをまとめて良いのであれば、MTCollate を使って「最近のコメント」を表示するはいかがでしょうか。

以上です。
それではどうぞよろしくお願い致します。

[6] Posted by yujiro : May 15, 2005 1:57 AM

初めて書き込ませていただいております。今回MT3.31を導入、全コメントリストの表示をしようとしているのですが、MTTagInvokeを追加し、指定のタグも書き換えて再構築しようとすると、「テンプレート「メインページ」に解析エラーが発生しました: タグが閉じられていません。」というエラーが出てしまい、再構築ができない状態です。テンプレートそのものはこちらで公開されているテンプレートをお借りしており、bodyタグの変更と今回のタグの書き換え以外は特に変更はしていないはずなのですが・・・。ちなみにMTの設置はロリポップを使っています。3.31は新規インストールです。
初心者丸出しで大変お恥ずかしいですがアドバイスいただけるとありがたいです。宜しくお願いいたします。

[7] Posted by 葛城宮雅 : July 25, 2006 4:34 PM

すみません、肝心のタグが消えておりました。、「テンプレート「メインページ」に解析エラーが発生しました: <MTTagName>タグが閉じられていません。」です。

[8] Posted by 葛城宮雅 : July 25, 2006 5:18 PM

>葛城宮雅さん
はじめまして。
テンプレートご利用&ご連絡ありがとうございます。
ご質問の件につきましては、別途対処方法を記したエントリー致しますのでお待ちください(とりあえず MTTagInvokeプラグインを無効にしておけば再構築はできると思います)。
あと勝手ながらBlogPeopleに登録させて頂きました。
それではよろしくお願い致します。

[9] Posted by yujiro : July 25, 2006 11:25 PM

早速の回答ありがとうございます。
現在の所JavaScriptを使ったツリー表示で対応するようにしております。
対処方法のエントリーが出ましたら今後の勉強のためにも挑戦してみたいと思いますのでどうぞよろしくお願いいたします。

[10] Posted by 葛城宮雅 : July 26, 2006 12:50 AM

>葛城宮雅さん
こんにちは。
ご連絡ありがとうございます。
本日、「Movable Type 3.3 の再構築で「MTTagNameタグが閉じられていません」になる問題の対処(改)」をエントリーしましたのでご確認ください。
それではよろしくお願い致します。

[11] Posted by yujiro : July 26, 2006 10:13 AM
コメントする
greeting

*必須

*必須(非表示)


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

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

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

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