Movable Typeでコメントを新着順に並べ替える方法

Movable Typeでコメントを新着順に並べ替える方法

Posted at June 27,2006 12:25 AM
Tag:[Comment, Customize, MovableType]

Movable Type のデフォルトテンプレートや公開テンプレートのエントリー・アーカイブでは、コメントリストは過去のコメントから順番に表示されるようになっています。「新着順にコメント表示するにはどうすれば良いですか」というご質問を頂きましたので、本エントリーにてご紹介します。

コメントを新着順に並べ替える変更方法は簡単で、管理メニューの「設定」→「基本」→「コメントの表示順」を「降順」にして保存・再構築します。
または、エントリー・アーカイブ(およびコメント・プレビュー)テンプレートの編集画面で MTComments タグに対し、下記のように sort_order 属性を追加します。
<MTComments sort_order="descend">

変更時の注意点としては、コメント投稿フォームをコメントリストの前、つまり新着コメント側へ移動した方がサイト管理者はコメントの返事を書きやすいと思います。
また、MTタグを修正する場合、コメント・プレビューでもコメントリストを表示しているのであれば、エントリー・アーカイブと表示順序を統一するようにしましょう。

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


コメント

こんばんは、yujiroさん 
エントリーして頂いてありがとうございます。

管理画面で変更出来るんですね
何を勘違いしていたんだろう・・・。汗

サイドバーに、表示されるコメントの件数を多くすれば良いんだけど
サイドバーが長くなってしまうので古い記事に、コメントを頂いた時に、上位に表示出来れば便利だと思いこの前、質問させて頂きました。

お忙しい中を、ありがとうございました。

[1] Posted by mituru : June 28, 2006 5:35 PM

>mituruさん
こんばんは。
ご連絡ありがとうございました。
ではでは!

[2] Posted by yujiro : June 28, 2006 11:01 PM

新着順にコメント表示さた際、MTではNOは新しいものが1番古いものが10番といったようになるとおもうのですが、BBSなどと同じように古いものが1番、新しいものが10番となり、10→1の順で表示することができないでしょうか?

[3] Posted by hinoco : October 13, 2006 1:43 PM

>hinocoさん
こんばんは。
ご質問の件につきまして下記のプラグインを作成しました。

CommentOrderNumberByDescend プラグイン

ということでお試し頂ければ幸いです。
それではよろしくお願い致します。

[4] Posted by yujiro : October 16, 2006 12:52 AM

>yujiroさま

こんにちは。
挨拶のせず、失礼なコメントを悔やみつつみてみたら、嬉いサプライズが!ありがとうございます。
さっそくためしてみます。

[5] Posted by hinoco : October 17, 2006 12:02 AM

>hinocoさん
こんにちは。
ご連絡ありがとうございます。
なおCommentOrderNumberByDescend プラグイン に一部誤りがありましたので、現在1.01を公開しています。
それではよろしくお願い致します。

[6] Posted by yujiro : October 17, 2006 3:08 PM

yujiroさん、ご返信ありがとうございます。

現象は10件のコメントがある場合に、
ナンバリングの先頭が5や8のような
途中の数字から始まりカウントダウンし、
1の次にコメントの最後の数から
もう一度カウントダウンします。

5→4→3→2→1→10→9→8→7→6

【設定部分】
<MTComments sort_order="descend">
<!-- コメント1件分開始 -->
<table width="800" border="0" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#FFFFFF"
style="font-size:12px;color:#434343;"><$MTCommentBody$></td>
</tr>
<tr>
<td align="right" bgcolor="#FFFFFF"
style="font-size:12px;color:#434343;"><$MTCommentAuthor$> (<$MTCommentDate
format="%Y/%m/%d"$>) NO.<$MTCommentOrderNumberByDescend$></td>
</tr>
</table>
<!-- コメント1件分終了 -->
</MTComments>

※上記テンプレートですが、
アーカイブテンプレートを新規で作成し
エントリーにマッピングしています。
(優先の設定は別のエントリーアーカイブについています。)

こちらの設定が、ちがっていたらすいません。

[7] Posted by hinoco : October 23, 2006 2:32 PM

>hinocoさん
こんにちは。
ご質問の件ですが、申し訳ありませんが現在のところ原因不明です。
優先のエントリー・アーカイブや他のエントリーでも同様の事象になるか確認して頂ければ幸いです。

なお頂いたテンプレートをそのままコピー&ペーストして非優先のエントリー・アーカイブで登録し(他のタグは含みません)、小粋空間のバックアップデータで実験してみましたが同様の事象は発生しているエントリーはみつかりませんでした(3.33-ja で動作確認しています)。
それではよろしくお願い致します。

[8] Posted by yujiro : October 23, 2006 5:43 PM

yujiroさん、こんばんわ。

優先の設定を変更しても、現象は変わりませんでした。(>_<)
ですが、一つヒントになりそうなことが分かりました。

*以下、長くてすいません*

アーカイブテンプレートを
2つ(エントリー・アーカイブ1とエントリー・アーカイブ2)作成しています。
上記2つのテンプレートを公開設定より
アーカイブの種類エントリーに2つのファイルをマッピングさせています。ほぼ同じ内容のファイルでコメントの表示数が違うファイルを書き出しています。

MTの管理画面で、
・エントリー・アーカイブ1(出力フォーマット:%c/<$MTEntryMore strip_linefeeds="1"$>.html)
・エントリー・アーカイブ2(出力フォーマット:%c/<$MTEntryMore strip_linefeeds="1"$>_all.html)
というように上から順番に並んでいます。

それぞれのテンプレートの中味の一部を下記に抜粋します。

【エントリー・アーカイブ1】
<MTComments lastn="5"sort_order="descend">
<table width="800" border="0" cellpadding="0" cellspacing="0" class="alpha">
<tr>
<td style="font-size:12px;"><$MTCommentBody$></td>
</tr>
<tr>
<td style="font-size:12px;"><$MTCommentAuthor$> (<$MTCommentDate format="%
Y/%m/%d"$>) NO.<$MTCommentOrderNumberByDescend$></td>
</tr>
</table>
</MTComments>

【エントリー・アーカイブ2】
<MTComments sort_order="descend">
<table width="800" border="0" cellpadding="0" cellspacing="0" class="alpha">
<tr>
<td style="font-size:12px;"><$MTCommentBody$></td>
</tr>
<tr>
<td style="font-size:12px;"><$MTCommentAuthor$> (<$MTCommentDate format="%
Y/%m/%d"$>) NO.<$MTCommentOrderNumberByDescend$></td>
</tr>
</table>
</MTComments>

という2種類のテンプレートからエントリーを書き出しています。
【エントリー・アーカイブ1】は、件数を多くしても正常にNOが表示されます。

【エントリー・アーカイブ2】のみで不具合が起こります。
10件のコメントがある場合、
5→4→3→2→1→10→9→8→7→6
となってしまいます。

本題の今回新しく分かったことですが、
【エントリー・アーカイブ1】で表示コメント数5にしているのですが、
それを2に変更してみたところ
8→7→6→5→4→3→2→1→10→9
と表示が変わりました。

一つ上のテンプレートで表示しているコメントの数の分だけ、NOが後ろにまわってしまっているようです。

たびたびで本当に恐縮です。
よろしくお願いいたします。

[9] Posted by hinoco : October 24, 2006 9:04 PM

大変失礼いたしました!表示用にタグ修正し忘れました。
>テンプレートの中味
のみ再度投稿させてください。
【エントリー・アーカイブ1】
<MTComments lastn="5"sort_order="descend">
<table width="800" border="0" cellpadding="0" cellspacing="0" class="alpha">
<tr>
<td style="font-size:12px;"><$MTCommentBody$></td>
</tr>
<tr>
<td style="font-size:12px;"><$MTCommentAuthor$> (<$MTCommentDate format="%
Y/%m/%d"$>) NO.<$MTCommentOrderNumberByDescend$></td>
</tr>
</table>
</MTComments>

【エントリー・アーカイブ2】
<MTComments sort_order="descend">
<table width="800" border="0" cellpadding="0" cellspacing="0" class="alpha">
<tr>
<td style="font-size:12px;"><$MTCommentBody$></td>
</tr>
<tr>
<td style="font-size:12px;"><$MTCommentAuthor$> (<$MTCommentDate format="%
Y/%m/%d"$>) NO.<$MTCommentOrderNumberByDescend$></td>
</tr>
</table>
</MTComments>

[10] Posted by hinoco : October 24, 2006 9:18 PM

>hinocoさん
こんばんは。
ご提示の条件で試したところ、たしかにプラグインにバグがありました。仰るとおり、前のエントリーで処理した値が残っていました。すいません。
ということでプラグインを修正しましたので、下記のリンクからダウンロードしてお試しください。

http://www.koikikukan.com/archives/download/plugin/CommentOrderNumberByDescend/1.03/CommentOrderNumberByDescend.zip

なお、MTComments に lastn 属性を付与した中で利用する場合、本タグにも lastn 属性を付与し、MTComments の lastn 属性値と同一の値を設定してください。
それではよろしくお願い致します。

[11] Posted by yujiro : October 25, 2006 11:05 PM

yujiroさん
さっそくプラグインをアップデートして
<$MTCommentOrderNumberByDescend lastn="5" $>
としたところ、コメントを全て表示した場合の状態がなおりました!
ありがとうございます。

ただ、、lastn="5"と指定してしまうと、
コメント5件の表示の場合のNOが、コメント総数からの
カウントダウンではなく、総数に構わず5件からの
カウントダウンになってしまいました。。

lastnをはずすと、5件のコメント表示は、
実現したい形になりますが、全て表示したものは、
以前と同じような形になってしまいました。。。。。

[12] Posted by hinoco : October 26, 2006 11:22 AM

>hinocoさん
こんにちは。
すいません。lastn 指定のある場合は lastn の値から開始するものと思い込んでました。
再度見直しますのでお時間ください。

[13] Posted by yujiro : October 26, 2006 12:51 PM

yujiroさま

いろいろと本当にすいません。

まってます、、、、心まちしております~。

[14] Posted by hinoco : November 10, 2006 5:19 PM

>hinocoさん
こんばんは。
すいません、ご質問の件は 1.04 ですでに改修されています。
連絡不足で申し訳ございません。
それではよろしくお願い致します。

[15] Posted by yujiro : November 11, 2006 2:49 AM

yujiroさま

ありがとうございます!

>連絡不足で申し訳ございません
こちらこそ、該当記事ページをきちんと確認せず大変失礼いたしました。

のぞんでた通りの表示になって大変うれしいです。
感謝です。

[16] Posted by hinoco : November 17, 2006 12:38 PM

>hinocoさん
こんにちは。
ご連絡ありがとうございました。
うまくできたようで良かったです。
ではでは!

[17] Posted by yujiro : November 17, 2006 4:52 PM
コメントする
greeting

*必須

*必須(非表示)


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

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

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

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