ノウハウをいつでも。ウェブマーケティングのポータルサイト

Movable Type Tips

MTUnlessを使って文字列の変換を行う

このエントリーをはてなブックマークに追加
      
follow us in feedly
友だち追加数

Movable Type には、 というタグがあります。引数の値を評価して、真の場合はブロック内を処理せず、 偽の場合にブロック内を処理します。ちょうど と逆の動作をします。

この MTUnless を使うことで、テンプレート内の文字置換を行ってみましょう。

想定条件

MTEntries を利用して、5件分の記事タイトルをリストタグで出力してみます。
コードは以下のように記述します。

            <ul>
            <MTEntries limit="5">
                <li><MTEntryTitle></li>
            </MTEntries>
            </ul>

上記のテンプレートを再構築すると、以下のような出力結果となりました。

            <ul>
            
                <li>12月の誕生石</li>
            
                <li>11月の誕生石</li>
            
                <li>10月の誕生石</li>
            
                <li>9月の誕生石</li>
            
                <li>8月の誕生石</li>
            
            </ul>

ご覧いただくと分かる通り、リスト行の間に、それぞれ空行が出力されています。これは、 のタグの直後、および のタグの直前に、それぞれ連続した空白文字と改行コードが存在して、文字列として出力されているからです。

MTタグの振る舞いとしては正しいものですが、空白行が気になる方もいらっしゃることと思います。
そこで、 を使って、この空白行を削除してみましょう。

修正したコード

<MTUnless name="foo" regex_replace="/\s+\n/g","\n">
            <ul>
            <MTEntries limit="5">
                <li><MTEntryTitle></li>
            </MTEntries>
            </ul>
</MTUnless>

出力結果は以下のようになります。

            <ul>
                <li>12月の誕生石</li>
                <li>11月の誕生石</li>
                <li>10月の誕生石</li>
                <li>9月の誕生石</li>
                <li>8月の誕生石</li>
            </ul>
改行が削除されていることがわかります。

これは、MTUnless の挙動を利用したものです。

MTUnless は、「引数の条件が偽の場合に処理を行う」 というブロックタグです。
今回のコードでは、引数に「foo」という変数を指定しています。しかし、実際には、foo はどこにも定義されておらず、値がない状態です。このため、Movable Type は「foo=偽」であると判断して、MTUnless のブロック内のコードを処理し、出力しています。

出力の際、グローバルモディファイアの「regex_replace」を使って、置換を行っています。
regex_replace は、正規表現を利用した文字列置換を行うモディファイアです。
「連続した空白文字+改行コード」 (\s+\n) の文字列があった場合、単なる改行コード (\n) に変換して、空白行を削除します。

この MTUnless のテクニックを使うと、様々な文字列変換に利用できますので、どうぞご活用ください。

© MAKEPO

 
このエントリーをはてなブックマークに追加
   
follow us in feedly
友だち追加数

著者情報

オサナイタケシ

長内毅志

Movable Type プロダクトマネジャーを経て、現在、Movable Type エバンジェリスト兼デベロッパーリレーションマネジャー。

他の参加者を見る

長内毅志

関連記事

マーケティングノウハウ足りてますか?

MAKEPOのメルマガ…購読してみませんか?
直近のピックアップ記事のほか、セミナー・ツール活用情報など不定期でお伝えしています。「サイトにアクセスするのは面倒だ!」「電車の中でざっくり読みたい」という方は是非ご登録ください。 リアルタイムで情報取得をしたい方は、RSSまたは公式Twitterをフォローしてご覧ください!

通勤中の情報収集に!

メルマガ登録

いますぐ新着情報を知るなら

LINE@で友だちに追加!