mt:If tag="EntryBody" が効かないので、
MTで条件分岐をさせる場合に、特定の入力エリアに内容が入っていない場合の処理という事で、
<mt:Entries> <mt:If tag="hoge"> //hogeに内容がある場合の処理 <mt:Else> //hogeに内容がない場合の処理 </mt:If> </mt:Entries> //※hogeにはMTタグや、カスタムフィールドタグが入ります。
という方法があります。
ですが、この方法だと、tagモディファイアに、EntryBodyを設定するとうまく動きません。
なので、こういう実装をしてみました。
<mt:Entries> <$MTEntryBody remove_html="1" regex_replace="/ /g","" setvar="bodyFlag"$> //エントリーボディの値から、htmlタグと空白を除去し、$bodyFlag変数へ <mt:If name="bodyFlag" ne=""> //$bodyFlagに内容がある場合の処理 <mt:Else> //$bodyFlagに内容がない場合の処理 </mt:If> </mt:Entries>
リッチテキストで、中途半端に内容を入れ、それを消したつもりになってると、<br />とか残ってたりします。それを、remove_htmlモディファイアで消去。
EntryBodyのエリアには何も触れなくても、なぜか空白が入ったりしてます。
その可能性を、regex_replaceで強引に消してます。
その2処理をした内容を、$bodyFlagに格納し、それが空でなければ、EntryBodyに内容が入っている場合の処理をし、
空ならば逆の処理をします。
ま、力技です;
もっといい方法があったら教えてください。
- tag
- movableType
- tips