Movable Type 備忘録

 MT4.2 で最近のコメント一覧を表示の不具合!?

こんばんわ^^

最近プライベートの方が忙しくってコメントのお返事もままならなず、質問された人にとっては早く回答を頂きたいところだと思うのですが、ご迷惑をおかけしてすいません。

さて、Movable Type 4.2 用のテンプレートを作ってる中で「あれっ!?」と、期待する動作しない現象を確認したので、そのメモ書きです。

現象

最近のコメントの一覧を表示するには、MTEntries ブロックタグを使用して recently_commented_on モディファイアで表示したいコメント数を指定することで一覧表示されますね。

この recently_commented_on で指定件数を指定しても、管理画面の「設定」>「ブログ記事」内の「ブログ記事の表示数」で指定した件数以上の表示がされませんでした。

具体的には以下のようなタグになります。

最近のコメント一覧

  1. <MTEntries recently_commented_on="5">
  2.     <MTEntriesHeader><ul></MTEntriesHeader>
  3.     <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
  4.  
  5.     <MTComments lastn="5" sort_order="descend">
  6.         <MTCommentsHeader><ul></MTCommentsHeader>
  7.         <li><a href="<$MTEntryLink$>#comment-<$MTCommentID$>"><$MTCommentAuthor$> <$MTCommentDate format="%y/%m/%d "$></li>
  8.         <MTCommentsFooter></ul></MTCommentsFooter>
  9.     </MTComments>
  10.     </li>
  11.     <MTEntriesFooter><ul></MTEntriesFooter>
  12. </MTEntries>

たとえば、わたしのサイトでは「ブログ記事の表示数」には '4' と設定しているので、4 件以上の最近のコメントは表示されませんでした。

対策

そこで、limit モディファイアを指定して上限を recently_commented_on モディファイア で表示したいコメント件数以上の値を設定してがあげると、期待する件数分の表示がされました。
具体的には以下のようなかんじです。

最近のコメント一覧

  1. <MTEntries recently_commented_on="5" limit="10">
  2.     <MTEntriesHeader><ul></MTEntriesHeader>
  3.     <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
  4.  
  5.     <MTComments lastn="5" sort_order="descend">
  6.         <MTCommentsHeader><ul></MTCommentsHeader>
  7.         <li><a href="<$MTEntryLink$>#comment-<$MTCommentID$>"><$MTCommentAuthor$> <$MTCommentDate format="%y/%m/%d "$></li>
  8.         <MTCommentsFooter></ul></MTCommentsFooter>
  9.     </MTComments>
  10.     </li>
  11.     <MTEntriesFooter><ul></MTEntriesFooter>
  12. </MTEntries>

これってやっぱり不具合だよね (; ̄∇ ̄A
まぁ、とりあえず上記のように limit モディファイアを指定することで対策はできました。

他にも MTEntryAssets ブロックタグが期待する動作しないのよねぇ (; ̄∇ ̄A

 Trackback Pings(2)

from KSMT::HR/HM blog

MT4.2にバージョンアップした後で、サイドバーの最近のコメントの表示が1件しか...

from Noel Cafe

いろいろあきらめまして、 Movable Typeのバージョンアップを行いました。 デフォルトのテンプレートにしないと機能しない機能はあるし・・・。 かな...

 Comments(4)

#1: Posted by Author Profile Page 4n5 @ June 30, 2008 [REPLY]
user-pic

「ブログ記事の表示数」で選択できる「日別」と「ブログ記事」は days (日別)と lastn (ブログ記事)の事だとですよね。
だから days , lastn , limit の値を任意に指定しない場合は「ブログ記事の表示数」が適用されるのかもしれません。私が試した限りでは上記コードの limit="10" を lastn="10" に替えても同じ結果が得られました。

直接関係ないかもしれませんが、limit モディファイアについて MovableType.jp に興味深い記述がありました。

lastn モディファイアと limit モディファイアの違い
http://www.movabletype.jp/blog/lastn_vs_limit.html

MTEntries ブロックタグで利用する limit モディファイアには auto という値を設定することができます。値に auto を設定した場合は、[ブログの設定] の [ブログ記事] で設定する、[ブログ記事の表示数] の設定値が適用されます。

limit モディファイアに関する説明と現在の現象をあわせると
<MTEntries> イコール <MTEntries limit="auto">
になり、MTEntries タグにデフォルトで limit="auto" が適用されている事になります。
結局、これが仕様なのか不具合なのかはわかりませんけど。

追伸:
コードの7行目で</a>が抜け、11行目の<ul>は</ul>の間違いです。コードを拝借した時に気付きました。

#2: Posted by Author Profile Page bzbell @ June 30, 2008 [REPLY]
user-pic

>>1 4n5 さん

こんばんわ^^

> だから days , lastn , limit の値を任意に指定しない場合は「ブログ記事の表示数」が適用されるのかもしれません。

そうですねぺこり
普通に MTEntries を使う場合には管理画面で設定した値か、または lastn、limit で指定した件数分表示されるのは知ってましたけど・・・でも、わたし今まで最近のコメント一覧ってとくにエントリ件数を指定せず recently_commented_on モディファイアでコメント投稿されたエントリがピックアップできてたようなガーン

わたしずっと lastn や limit に関係なく、recently_commented_on モディファイアで指定した件数分コメントを遡るのかと。

そすると、たまたま管理画面の表示件が 5 件以上だったから最近のコメントが 5 件表示されてたってことなのかなぁあせあせ 初めて知りましたあせあせ

てことは、最近のエントリを lastn で 10 件とした場合、その中からコメント投稿されたエントリ 5 件という意味になりますか!?
そすると、最近のエントリ 10 件中にコメントが投稿されてなかった場合コメント一覧は表示されなくなるのが正しいようなガーン

う~んイヤイヤそうだったのかなぁ。
でも、コメント頂いてありがとうございますワクワク

#3: Posted by Author Profile Page 4n5 @ June 30, 2008 [REPLY]
user-pic

>>2 bzbell さん
お返事ありがとうございます。

> てことは、最近のエントリを lastn で 10 件とした場合、その中からコメント投稿されたエントリ 5 件という意味になりますか!?
> そすると、最近のエントリ 10 件中にコメントが投稿されてなかった場合コメント一覧は表示されなくなるのが正しいような

私もそうなる事が正しい気がしますが、実際はそうなりません。
私の推論ですが

recently_commented_on モディファイアは絞込条件
lastn, days, limit モディファイアは終了条件

という事ではないでしょうか。
これなら
<MTEntries recently_commented_on="5" lastn="10">
という記述をした場合の結果が
「最新 10 件の内、コメントがついた 5 件」ではなく
「コメントがついた 5 件の内、最新 10 件」になる事にも納得できます。

#4: Posted by Author Profile Page bzbell @ July 1, 2008 [REPLY]
user-pic

>>3 4n5 さん

おはよございます^^
> recently_commented_on モディファイアは絞込条件
> lastn, days, limit モディファイアは終了条件

なるほど。
結果から考えるとそいうかんじですねウインク
recently_commented_on で最新 5 件って言ってるんだから特にリミッターは不要な気がするのはわたしだけキャハハ?!

でも納得しました。
ありがとうございますテレテレ

 Post a Comment

 

コメント用フィード