Movable Typeでコメントを新着順に並べ替える方法
Movable Type のデフォルトテンプレートや公開テンプレートのエントリー・アーカイブでは、コメントリストは過去のコメントから順番に表示されるようになっています。「新着順にコメント表示するにはどうすれば良いですか」というご質問を頂きましたので、本エントリーにてご紹介します。
変更方法は簡単で、管理メニューの「設定」→「基本」→「コメントの表示順」を「降順」にして保存・再構築します。 または、エントリー・アーカイブ(およびコメント・プレビュー)テンプレートの編集画面で MTComments タグに対し、下記のように sort_order 属性を追加します。 |
<MTComments sort_order="descend">
変更時の注意点としては、コメント投稿フォームをコメントリストの前、つまり新着コメント側へ移動した方がサイト管理者はコメントの返事を書きやすいと思います。
また、MTタグを修正する場合、コメント・プレビューでもコメントリストを表示しているのであれば、エントリー・アーカイブと表示順序を統一するようにしましょう。
- Movable Typeのコメント完了ページの内容を記事ごとに振り分ける方法
- Movable Typeで特定カテゴリのコメントを表示する方法
- Movable TypeでreCaptchaを利用する
- Movable Typeでカテゴリ別+ブログ記事別に新着コメントを表示する
- Movable Type 5でコメント投稿フォームをポップアップする
- Movable TypeのコメントでFacebookアカウント認証を有効にする
- Yahoo! JAPAN OpenID を省略表示する(その2)
- コメントにHTMLタグ挿入ボタンをつける(MT4/MT5版)
- コメント投稿にTwitterのOAuth認証を導入
- Movable Type 5でのMTCommentsタグの動作
- ブログ記事とコメントをひとつのフィードで配信する
- Movable Typeのコメント一覧からウェブページのコメントを除外して表示する
- Movable Typeのコメントにimg要素を許容する
- Movable Type(MT)のコメント投稿者の承認と禁止について
- Movable Type 5(MT5)のコメントのページ分割機能(その2:カスタマイズ)
こんばんは、yujiroさん
エントリーして頂いてありがとうございます。
管理画面で変更出来るんですね
何を勘違いしていたんだろう・・・。汗
サイドバーに、表示されるコメントの件数を多くすれば良いんだけど
サイドバーが長くなってしまうので古い記事に、コメントを頂いた時に、上位に表示出来れば便利だと思いこの前、質問させて頂きました。
お忙しい中を、ありがとうございました。
>mituruさん
こんばんは。
ご連絡ありがとうございました。
ではでは!
新着順にコメント表示さた際、MTではNOは新しいものが1番古いものが10番といったようになるとおもうのですが、BBSなどと同じように古いものが1番、新しいものが10番となり、10→1の順で表示することができないでしょうか?
>hinocoさん
こんばんは。
ご質問の件につきまして下記のプラグインを作成しました。
CommentOrderNumberByDescend プラグイン
ということでお試し頂ければ幸いです。
それではよろしくお願い致します。
>yujiroさま
こんにちは。
挨拶のせず、失礼なコメントを悔やみつつみてみたら、嬉いサプライズが!ありがとうございます。
さっそくためしてみます。
>hinocoさん
こんにちは。
ご連絡ありがとうございます。
なおCommentOrderNumberByDescend プラグイン に一部誤りがありましたので、現在1.01を公開しています。
それではよろしくお願い致します。
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>
※上記テンプレートですが、
アーカイブテンプレートを新規で作成し
エントリーにマッピングしています。
(優先の設定は別のエントリーアーカイブについています。)
こちらの設定が、ちがっていたらすいません。
>hinocoさん
こんにちは。
ご質問の件ですが、申し訳ありませんが現在のところ原因不明です。
優先のエントリー・アーカイブや他のエントリーでも同様の事象になるか確認して頂ければ幸いです。
なお頂いたテンプレートをそのままコピー&ペーストして非優先のエントリー・アーカイブで登録し(他のタグは含みません)、小粋空間のバックアップデータで実験してみましたが同様の事象は発生しているエントリーはみつかりませんでした(3.33-ja で動作確認しています)。
それではよろしくお願い致します。
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が後ろにまわってしまっているようです。
たびたびで本当に恐縮です。
よろしくお願いいたします。
大変失礼いたしました!表示用にタグ修正し忘れました。
>テンプレートの中味
のみ再度投稿させてください。
【エントリー・アーカイブ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>
>hinocoさん
こんばんは。
ご提示の条件で試したところ、たしかにプラグインにバグがありました。仰るとおり、前のエントリーで処理した値が残っていました。すいません。
ということでプラグインを修正しましたので、下記のリンクからダウンロードしてお試しください。
http://www.koikikukan.com/archives/download/plugin/CommentOrderNumberByDescend/1.03/CommentOrderNumberByDescend.zip
なお、MTComments に lastn 属性を付与した中で利用する場合、本タグにも lastn 属性を付与し、MTComments の lastn 属性値と同一の値を設定してください。
それではよろしくお願い致します。
yujiroさん
さっそくプラグインをアップデートして
<$MTCommentOrderNumberByDescend lastn="5" $>
としたところ、コメントを全て表示した場合の状態がなおりました!
ありがとうございます。
ただ、、lastn="5"と指定してしまうと、
コメント5件の表示の場合のNOが、コメント総数からの
カウントダウンではなく、総数に構わず5件からの
カウントダウンになってしまいました。。
lastnをはずすと、5件のコメント表示は、
実現したい形になりますが、全て表示したものは、
以前と同じような形になってしまいました。。。。。
>hinocoさん
こんにちは。
すいません。lastn 指定のある場合は lastn の値から開始するものと思い込んでました。
再度見直しますのでお時間ください。
yujiroさま
いろいろと本当にすいません。
まってます、、、、心まちしております~。
>hinocoさん
こんばんは。
すいません、ご質問の件は 1.04 ですでに改修されています。
連絡不足で申し訳ございません。
それではよろしくお願い致します。
yujiroさま
ありがとうございます!
>連絡不足で申し訳ございません
こちらこそ、該当記事ページをきちんと確認せず大変失礼いたしました。
のぞんでた通りの表示になって大変うれしいです。
感謝です。
>hinocoさん
こんにちは。
ご連絡ありがとうございました。
うまくできたようで良かったです。
ではでは!