maki-o memo

制作に関する私的なメモです

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

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


プロフィール

フロントエンドエンジニア

Tomokazu Makita

名古屋でフリーランスでWeb制作してます。 フロントエンドのことを主にやってます。
a-blog cmsを使用したサイト制作が得意です。
お仕事のご相談随時受付中。

雪山大すき。冬は雪山の合間に仕事します。
財布はいつも吹雪です。

エントリーリスト

タグ