home > Movable Type > 指定した文字数以降をカットして「...」...
指定した文字数以降をカットして「...」をつける方法
- 2008年8月13日 12:15
- Movable Type
Movable Type でブログ記事の上にパンくずリストを表示させるとき、ブログ記事のタイトルが長いと少しうっとうしい気がします。
上の画像は、現在制作中のオリジナルテンプレートのタイトル部分です。デザインセンスが無いせいもありますが、かなりうっとうしいですね。
そこで、指定した文字数以降をカットして「...」をつけるようにカスタマイズしてみました。
ちなみに、8/13現在で使用している vicuna CMS のテンプレートはいじっていないのでご注意を。
このカスタマイズの方法としては、MT のプログラム側にちょこっと手を入れる方法もあるようですが(参考:MT4で、trim_toの制限文字数超えたときだけ"..."を付ける方法。 | 京の路)、今回はテンプレートで実現してみました。しかも簡単です。
今回は、パンくずリストのブログ記事タイトルの「20文字」以降をカットして「...」にしますので、パンくずリスト内のブログ記事タイトルを表示するMTタグの部分をカスタマイズします。
[ブログ記事タイトルを表示するMTタグ]
<$mt:EntryTitle$>
このMTタグで出力される文字列の指定文字数以降をカットするには、グローバルモディファイアである trim_to モディファイアを使用します。
<$mt:EntryTitle trim_to="20"$>
これで「20」文字以降はカットされます。
このままだとただ単にカットされるだけなので、この後ろに「...」を付けます。
<$mt:EntryTitle trim_to="20"$>...
さて、これだと20文字以下の場合でも「...」が表示されてしまうので、20文字を境に条件分岐します。
まず、グローバルモディファイア count_characters を使い、ブログ記事タイトルの文字数をカウントし、それを変数 charaCount に代入します。
<mt:SetVarBlock name="charaCount"><$mt:EntryTitle count_characters="1"$></mt:SetVarBlock>
この変数 charaCount が20文字を超えるか、20文字以下かで条件分岐します。
<mt:SetVarBlock name="charaCount"><$mt:EntryTitle count_characters="1"$></mt:SetVarBlock>
<mt:If name="charaCount" gt="20">
<$mt:EntryTitle trim_to="20"$>...
<mt:Else>
<$mt:EntryTitle$>
</mt:If>
好みの差はあれど、けっこうすっきりしましたね。
20文字以下の場合はそのまま表示されます。
以上です。
- 【2008-08-14 追記】
家に帰って『Movable Type 4.2 パーフェクトガイド』を見てたら、もろにこのカスタマイズが載っていました。
TrackBack [0]
- TrackBack URL
- Link to this Entry



Comment [0]