Home > 備忘録 > mt:If tag=”EntryBody” が効かないので、

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に内容が入っている場合の処理をし、
空ならば逆の処理をします。

ま、力技です;
もっといい方法があったら教えてください。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.maki-o.net/memo/wp-trackback.php?p=497
Listed below are links to weblogs that reference
mt:If tag=”EntryBody” が効かないので、 from maki-o memo

Home > 備忘録 > mt:If tag=”EntryBody” が効かないので、

Search
Banner

Feeds
Meta

Return to page top