MovableType: SetVarBlockのnameへ入れた変数のIF文でうまくいかないときの原因

 

MovableType: SetVarBlockのnameへ入れた変数のIF文で空の判定がうまくできなかったときの原因をまとめます。

解決方法としては、mt:SetVarBlock 内のタグを改行やインデントなしに書くことです。

こうすることで、変数(link_url)にスペースが入らないからです。

改行とインデントをいれると変数にスペースが入ってしまい空の判定が出来なくなります。

 

良い例

<mt:SetVarBlock name="link_url"><mt:ContentField content_field="リンクURL"><mt:ContentFieldValue></mt:ContentField></mt:SetVarBlock>

 

ダメな例

<mt:SetVarBlock name="link_url">
  <mt:ContentField content_field="リンクURL">
    <mt:ContentFieldValue>
  </mt:ContentField>
</mt:SetVarBlock>

 

 

空の判定IF文

<mt:If name="link_url" eq="" >
  <p>空<mt:Var name="link_url" ></p>
<mt:Else>
  <p>空ではない<mt:Var name="link_url" ></p>
</mt:If>

 

見た目を奇麗にするために改行やインデントを入れたくなりますが、ここでは入れないように気を付けないといけないです。

 

category cloud