エントリー本文
カスタムフィールドのテキストエリアに入力した改行をページに反映させる
Movable Type のカスタムフィールドで「テキスト(複数行)」という種類のフィールドを利用する際、テキストエリアへの入力内容に改行や空行を含めても、出力される文字列の改行や空行はすべて除去された状態で出力されてしまいます。
本エントリーでは、この事象を解消する方法を紹介します。
1.問題点
例えば、次のようなカスタムフィールドを作成します。テンプレートタグはとりあえず「EntryData」としておきます。

作成したフィールドで、次のようなテキストを入力します。

このカスタムフィールドを出力する「ブログ記事の概要」のサブテンプレートは次のようにします。
:
<div class="asset-body">
<$MTEntryBody$>
<MTIfNonEmpty tag="EntryData">
<$MTEntryData$>
</MTIfNonEmpty>
</div>
:
このテンプレートで出力されるカスタムフィールドの内容には、ご覧の通り、改行が含まれません。

2.対処方法
改行を含めるには、グローバルモディファイアである、filter モディファイアをカスタムフィールドに適用します。
:
<div class="asset-body">
<$MTEntryBody$>
<MTIfNonEmpty tag="EntryData">
<$MTEntryData filters="__default__"$>
</MTIfNonEmpty>
</div>
:
値に設定されている __default__ は、テキストフィルタとして定義されている予約変数(厳密にはMT::Util::html_text_transformをハンドリングするためのキー名)です。
このように設定することで、カスタムフォールドの出力結果に改行(br 要素や p 要素)が反映されます。

もう少し厳密に言えば、ブログ記事やウェブページの本文・追記のフォーマットで「改行を変換」を選択したものと同じ結果で出力されます。
3.参考記事
Ogawa::memoranda:どこでもConvert Line Breaksするための2つのTips
- Movable Type 4.1 テンプレートセット(スタイル対応版)
- Movable Type 4 でポッドキャスト/ポッドキャスティング(その2:MT-Enclosures プラグイン)
- いいマニュアルも
- Ajax 月送りカレンダー(横型)
- Movable Type 4.2 検索結果ページのカスタマイズ:検索結果の見出しに(現在のページ/総ページ数)を表示する
- Movable Type 公開テンプレート設定方法
- Serene Bach カテゴリーのプルダウン化プラグイン v3.00
- PHP における「モジュール版」と「CGI 版」の比較 + WordPress の適用例
- ブログ記事の入力フィールドに初期値を設定するプラグイン
- サイドメニューの折りたたみ for livedoorブログ
≫ カスタムフィールドのテキストエリアの改行を有効にする from 02 備忘録
カスタムフィールドで追加したテキストエリアに入力した改行を有効にする必要があった... [続きを読む]
