MovableType 4.2 で文字列をトリミング

MT 4.2 で長過ぎるタイトルを指定した文字数のみ表示して残りは省略したい!と思ってググっていたのですが、文字数・クリッピング・トリミング・指定・省略・・・検索語句が悪かったのか古いプラグインの情報しかヒットしませんでした。この機能の正式名称はなんなんだろう。

すでに 404 になっていたプラグイン配布ページが 2 つ続いた後、現在も配布されているプラグインに出会いました。
文字列を任意の位置でトリミングするMovableTypeプラグイン/楽
2006 年に MT 3.x 用として作られたプラグインですが、MT 4.2 で使えた!という人もいたので試して見ようと思い、属性を追加するためにテンプレートを見るとこんなものを発見。

<$mt:CommentBody remove_html="1" trim_to="15"$>

こ、これは・・・もしかして標準機能としてトリミングできる何かがあるの?
ありました!trim_to | グローバル・モディファイアリファレンス

この trim_to はリファレンスを見ただけではどのテンプレートタグに使用可能なのか不明ですが、指定した文字数以降は非表示にしたいなんてのは記事タイトルとか本文?くらいしか思いつかないので、試してみてダメだったら他の方法を探す作戦でいこうと思います。

<a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>

例えば上記のようになっている部分の記事タイトルを 10 文字のみ表示、残りは非表示にする場合、

<a href="<$mt:EntryPermalink$>" title="<$mt:EntryTitle$>"><$mt:EntryTitle trim_to="10"$>...</a>

こんなかんじでどうでしょー。
アンカーに title 属性を追加したのは省略されていない記事タイトルすべてをオンマウスで表示するため、最後の … で「この後に続く文字列があるんだけど大人の事情でこれ以降は非表示にしてあるよごめんね」を表現してみました。
この … を直接書く方法だと記事タイトルが 3 文字とかだった場合に省略されていないのに … も表示されてしまうということはちょっと置いておく。

標準機能にあるのならプラグインを使うよりも標準機能がいいんじゃない?と思ってプラグインを使うのはやめましたが、TrimX2Y プラグインでは x 文字目までを切り出して表示 (標準機能と同じ)、x 文字目以降を切り出して表示、x 文字目から y 文字目までを切り出して表示、の 3 タイプの指定ができるので、場合によっては TrimX2Y プラグインを利用するのが便利かもしれません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です