【Movable Type】本文から指定した文字数の文字を取り出す方法
ニュースなど記事の一覧を表示する際に本文の先頭から指定した文字数だけを表示したいということがあると思います。
以前は本文の文字数をカウントしてそれを変数に入れ、本文が指定した文字数以上だった場合は「…」をつけるようIf文で分岐するという方法だったのですが、Movable Type 5.1 以降では「trim_to=”文字数+文字列”」とすることで指定した文字数の文字を取り出し、本文にそれ以上文字が含まれている場合は+以降に指定した文字列を連結して出力することができるようになっていました。
以下がサンプルです。
<mt:EntryBody trim_to="10+…">
本文:あいうえおかきくけこ
↓
表示:あいうえおかきくけこ
本文:あいうえおかきくけこさしすせそ
↓
表示:あいうえおかきくけこ…
めちゃくちゃ簡単ですね。もちろんmt:EntryBody以外のファンクションタグにも使用することができます。
ただ、このままではHTMLタグを含む場合や改行が入っている場合などにうまくいかないので以下のようにします。
<mt:EntryBody remove_html="1" strip_linefeeds="1" trim_to="10+…">
「remove_html=”1″」はmt:EntryBodyに含まれるHTMLタグを除去し、
「strip_linefeeds=”1″」は改行コードを除いています。
モディファイアの順番はサンプルのようにremove_htmlとstrip_linefeedsのあとにtrim_toを指定するようにしてください。
またMovable Type 6.0.4 以降では、trim_toに負の値を指定することができます。
負の値を指定することで文字列の末尾から指定数を取り除いて残った部分を表示することができます
<mt:EntryBody trim_to="-10">
本文:あいうえおかきくけこさしすせそ
↓
表示:あいうえお
おしまい。