Movable Type 備忘録
MT4.2 で最近のコメント一覧を表示の不具合!?
- Prev Page: Movable Type 4 向けのバックアップツール
- Next Page: AdminScript 環境変数
こんばんわ^^
最近プライベートの方が忙しくってコメントのお返事もままならなず、質問された人にとっては早く回答を頂きたいところだと思うのですが、ご迷惑をおかけしてすいません。
さて、Movable Type 4.2 用のテンプレートを作ってる中で「あれっ!?」と、期待する動作しない現象を確認したので、そのメモ書きです。
現象
最近のコメントの一覧を表示するには、MTEntries ブロックタグを使用して recently_commented_on モディファイアで表示したいコメント数を指定することで一覧表示されますね。
この recently_commented_on で指定件数を指定しても、管理画面の「設定」>「ブログ記事」内の「ブログ記事の表示数」で指定した件数以上の表示がされませんでした。
具体的には以下のようなタグになります。
最近のコメント一覧
<MTEntries recently_commented_on="5"><MTEntriesHeader><ul></MTEntriesHeader><li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><MTComments lastn="5" sort_order="descend"><MTCommentsHeader><ul></MTCommentsHeader><li><a href="<$MTEntryLink$>#comment-<$MTCommentID$>"><$MTCommentAuthor$> <$MTCommentDate format="%y/%m/%d "$></li><MTCommentsFooter></ul></MTCommentsFooter></MTComments></li><MTEntriesFooter><ul></MTEntriesFooter></MTEntries>
たとえば、わたしのサイトでは「ブログ記事の表示数」には '4' と設定しているので、4 件以上の最近のコメントは表示されませんでした。
対策
そこで、limit モディファイアを指定して上限を recently_commented_on モディファイア で表示したいコメント件数以上の値を設定してがあげると、期待する件数分の表示がされました。
具体的には以下のようなかんじです。
最近のコメント一覧
<MTEntries recently_commented_on="5" limit="10"><MTEntriesHeader><ul></MTEntriesHeader><li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><MTComments lastn="5" sort_order="descend"><MTCommentsHeader><ul></MTCommentsHeader><li><a href="<$MTEntryLink$>#comment-<$MTCommentID$>"><$MTCommentAuthor$> <$MTCommentDate format="%y/%m/%d "$></li><MTCommentsFooter></ul></MTCommentsFooter></MTComments></li><MTEntriesFooter><ul></MTEntriesFooter></MTEntries>
これってやっぱり不具合だよね (; ̄∇ ̄A
まぁ、とりあえず上記のように limit モディファイアを指定することで対策はできました。
他にも MTEntryAssets ブロックタグが期待する動作しないのよねぇ (; ̄∇ ̄A
Trackback Pings(2)
- from
KSMT::HR/HM blog
MT4.2にバージョンアップした後で、サイドバーの最近のコメントの表示が1件しか...
- from
Noel Cafe
いろいろあきらめまして、 Movable Typeのバージョンアップを行いました。 デフォルトのテンプレートにしないと機能しない機能はあるし・・・。 かな...




「ブログ記事の表示数」で選択できる「日別」と「ブログ記事」は days (日別)と lastn (ブログ記事)の事だとですよね。
だから days , lastn , limit の値を任意に指定しない場合は「ブログ記事の表示数」が適用されるのかもしれません。私が試した限りでは上記コードの limit="10" を lastn="10" に替えても同じ結果が得られました。
直接関係ないかもしれませんが、limit モディファイアについて MovableType.jp に興味深い記述がありました。
lastn モディファイアと limit モディファイアの違い
http://www.movabletype.jp/blog/lastn_vs_limit.html
limit モディファイアに関する説明と現在の現象をあわせると
<MTEntries> イコール <MTEntries limit="auto">
になり、MTEntries タグにデフォルトで limit="auto" が適用されている事になります。
結局、これが仕様なのか不具合なのかはわかりませんけど。
追伸:
コードの7行目で</a>が抜け、11行目の<ul>は</ul>の間違いです。コードを拝借した時に気付きました。
>>1 4n5 さん
こんばんわ^^
> だから days , lastn , limit の値を任意に指定しない場合は「ブログ記事の表示数」が適用されるのかもしれません。
そうですね
普通に MTEntries を使う場合には管理画面で設定した値か、または lastn、limit で指定した件数分表示されるのは知ってましたけど・・・でも、わたし今まで最近のコメント一覧ってとくにエントリ件数を指定せず recently_commented_on モディファイアでコメント投稿されたエントリがピックアップできてたような
わたしずっと lastn や limit に関係なく、recently_commented_on モディファイアで指定した件数分コメントを遡るのかと。
そすると、たまたま管理画面の表示件が 5 件以上だったから最近のコメントが 5 件表示されてたってことなのかなぁ
初めて知りました
てことは、最近のエントリを lastn で 10 件とした場合、その中からコメント投稿されたエントリ 5 件という意味になりますか!?
そすると、最近のエントリ 10 件中にコメントが投稿されてなかった場合コメント一覧は表示されなくなるのが正しいような
う~ん
そうだったのかなぁ。
でも、コメント頂いてありがとうございます
>>2 bzbell さん
お返事ありがとうございます。
> てことは、最近のエントリを lastn で 10 件とした場合、その中からコメント投稿されたエントリ 5 件という意味になりますか!?
> そすると、最近のエントリ 10 件中にコメントが投稿されてなかった場合コメント一覧は表示されなくなるのが正しいような
私もそうなる事が正しい気がしますが、実際はそうなりません。
私の推論ですが
recently_commented_on モディファイアは絞込条件
lastn, days, limit モディファイアは終了条件
という事ではないでしょうか。
これなら
<MTEntries recently_commented_on="5" lastn="10">
という記述をした場合の結果が
「最新 10 件の内、コメントがついた 5 件」ではなく
「コメントがついた 5 件の内、最新 10 件」になる事にも納得できます。
>>3 4n5 さん
おはよございます^^
> recently_commented_on モディファイアは絞込条件
> lastn, days, limit モディファイアは終了条件
なるほど。
?!
結果から考えるとそいうかんじですね
recently_commented_on で最新 5 件って言ってるんだから特にリミッターは不要な気がするのはわたしだけ
でも納得しました。
ありがとうございます