こんにちわ。
職人見習いの齋藤です。

MT5で記事本文や概要などを指定文字数だけ表示したい場合があります。
そういう場合は例えば概要ならMTEntryExcerptにモディファイアでwordsを指定し、指定文字数分取得できますが、以前諸々の事情によりそれらが使えない状況があったため、手動で希望文字数分を取得する必要がありました。
そういう際の取得方法の一例を紹介します。

例として本文から100文字取得したい場合

<$MTEntryBody remove_html="1" $> ※1
 ※2
 ※3
  

  

まずは本文をHTMLタグを除いた状態にして変数に保存します。
ここでは「 body_param 」という変数名にしています。 ※1

次に「 body_param 」の総文字数のカウントを取得し、
「 body_param_str_cnt 」という変数に格納しておきます。 ※2

次にMTIfを使って条件分岐を行います。 ※3
分岐条件は先に用意しておいた本文の総文字数カウントの「body_param_str_cnt」を使います。
「le=”100″」というモディファイアを使い、100文字以下だったらtrueとし、最初に用意したHTMLタグを除いた本文「body_param」を
そのまま表示します。
100文字を超えている場合は、「body_param」に「trim_to=”100″」と付加し、100文字分だけ抽出して表示します。

これで手動で本文から指定文字数分取得することができました。
もし本文に正規表現を加えて表示内容を加工したい場合は、※1の部分でbody_paramを生成する時にMTEntryBodyにモディファイアで「regex_replace」を付加して任意の正規表現を行なってあげれば大丈夫です。
また、上記の例では変数をMTSetVarBlockで作成していますが、タグに直接setVarで変数保存を行なっても問題ありません。

ブログ記事本文だけでなく、タグで呼び出せる文字列なら上記の方法で指定文字数分抽出できます。

※この記事は、なかの人(Iret_msaito)が書いています。