share facebook facebook twitter menu hatena pocket slack

2011.11.15 TUE

MT5 記事本文から指定文字数分だけ表示する方法

齋藤 充裕

WRITTEN BY 齋藤 充裕

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

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)が書いています。

齋藤 充裕

齋藤 充裕

PHPをメインに細々開発。主食は麺。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。