Movable Typeの最近のコメントでコメント内容を表示しトリミングする

MTの「最近のコメント」。標準では「・投稿者名 記事名」といった感じなのだけど、これを「・投稿者名 コメント内容」といった感じにしたい。だけど、コメント内容をそのまま表示すると、長いコメントが複数行に渡って表示されちゃってよろしくないので、ある程度の長さでトリミングしたい。調べてみると方法があった。

まず、コメント内容を表示するには、ウィジェットの「最近のコメント」を以下のように修正する。

<li class="widget-list-item"><$mt:CommentAuthor$> から <a href="<$mt:CommentLink$>" title="<mt:CommentEntry><$mt:EntryTitle$></mt:CommentEntry> のコメントを見る"><mt:CommentEntry><$mt:EntryTitle$></mt:CommentEntry></a></li>

<li class="widget-list-item"><$mt:CommentAuthor$> から <a href="<$mt:CommentLink$>" title="<mt:CommentEntry><$mt:EntryTitle$></mt:CommentEntry> のコメントを見る"><mt:CommentEntry><$MTCommentBody remove_html="1" encode_html="1" strip_linefeeds="1"$></mt:CommentEntry></a></li>

<$mt:EntryTitle$> を <$MTCommentBody remove_html="1" encode_html="1" strip_linefeeds="1"$> に変更。

そして、コメントの長さをトリミングするには以下を追加する。15文字でトリミングし、切られた場合は省略が分かるよう末尾に ... が入るようにしている。

<li class="widget-list-item"><$mt:CommentAuthor$> から <a href="<$mt:CommentLink$>" title="<mt:CommentEntry><$mt:EntryTitle$></mt:CommentEntry> のコメントを見る"><mt:CommentEntry><$MTCommentBody remove_html="1" encode_html="1" strip_linefeeds="1" trim_to="15+..."$></mt:CommentEntry></a></li>

改行を挟むなど調整、これでいい感じになった。

MT3の時は、trim_to が2バイト文字に未対応なようで想定外な所で切られることが多く trimj_to というプラグインを使っていたのだけど、MT6は問題なく切ってくれるみたい。また、trim_to はコメント内容だけでなく、投稿者名とか他でも使えますよ。

参考
最近のコメントのツールチップにコメント内容を表示する (小粋空間)
[MovableType]MT5でtrim_toを使用した際に、「...」をつける (中身のないPGの備忘録)