1. マニュアル

if分岐・Smarty変数

if分岐について

ifには英語で「もし~ならば」という意味があり、「△△という条件を満たすときに○○という処理を実行する」という条件分岐を書くときに使う構文です。
指定した条件に一致するかどうかで処理内容を変えたいときに使います。

▼記述イメージ
{if 条件式}
  真のときの処理(=○○をする)
{/if}
「真」・・・「条件に一致したら(TRUE)」と同義です。


elseについて
elseとは、「もしも、特定の条件△△が成立したときは、○○をする、成立しないときは××をする」というように、 条件に一致しなかった時の処理を指定する時に使います。

▼記述イメージ
{if 条件式}
  真のときの処理(=○○をする)
{else}
  偽のときの処理(=××をする)
{/if}
「偽」・・・「条件に一致しなかったら(FALSE)」と同義です。


if分岐のよくある使用例としては、「特定のLPフォームの時だけ<タグ○○○>を表示したい」場合などがあります。
{if 条件式(LPフォームabcだったら)}
  <タグ○○○> (真のときの処理)
{else}
  (偽のときの処理)
{/if}
条件演算子について
条件指定は、AがBより”大きい”や、AがBと”同じ”といった書き方で指定します。
”大きい”や”同じ”を意味する条件演算子は、主なもので以下があります。
また、演算子は後述のSmartyとして記述する際は、半角スペースで区切られている必要があることに注意が必要です。
演算子 記述例 説明
== A == B AとBが等しい時に真(TRUE)
!= A != B
AとBが等しくない時に真(TRUE)
> A > B AがBより大きい時に真(TRUE)
< A < B
AがBより小さい時に真(TRUE)
>= A >= B AがB以上の時に真(TRUE)
<= A <= B AがB以下の時に真(TRUE)

▼演算子を用いた記述例(もしも、今表示しているURLが[abc]の場合)
{if '今表示しているURL' == 'abc' }
真のときの処理
{/if}

▼演算子を用いた記述例(もしも、今表示しているURLが[abc]ではない場合)
{if '今表示しているURL' != 'abc' }
真のときの処理
{/if}

注意 「今表示しているURL」といった、動的に変わる値を使いたい場合、変数を使う必要があります。
if分岐で条件を作る時、「カゴの中の商品ID」や、「踏んだADコード」など動的な値を参照して条件指定することが多いです。

変数について
Smartyは主に【 変数 】として使うことが多く、変数として使う場合は以下のように変数名の先頭に「$」マークを付け、「 <!--{ }-->」で囲って記述します。
<!--{$変数名}-->
▼記述例(「今表示しているURLがabcだったら<タグ○○○>を表示する」場合)
①URLを取得する変数名: smarty.server.REQUEST_URI ⇒URLのルート相対パスを取得します。
②「$」をつけてSmarty変数として取得可能な記述を作ります。
$smarty.server.REQUEST_URI
③上記変数をif分岐式に組み込みます。
Smartyを使ったif分岐のため、ifとSmarty変数は <!--{  }--> 内に記述します。
前項で触れた演算子を使って「AとBが”同じだったら”」という条件式を作ります。
<!--{if $smarty.server.REQUEST_URI == 'abc'}-->
タグ○○○
<!--{/if}-->

注意 Smartyにおける「 <!--{if}--> 」は、対応する 「 <!--{/if}--> 」 とペアである必要があります。





if分岐タグの記述例

1. TOPページで使用できる分岐タグ
■TOPページに表示するタグ
<!--{if $arrPageLayout.is_top_page}-->
【TOPページに表示する内容を記述】
<!--{/if}-->
2. カテゴリページで使用できる分岐タグ
■カテゴリページに表示するタグ
<!--{if $arrPageLayout.is_category_page}-->
【表示する内容を記述】
<!--{/if}-->

※全てのカテゴリページに表示されます。
■特定のカテゴリページに表示するタグ
<!--{if $arrPageLayout.is_category_page}-->
    <!--{if '●'|check_category_id}-->
【指定したカテゴリページに表示する内容を記述】
    <!--{/if}-->
<!--{/if}-->

※●の個所にはカテゴリIDを記載
※複数指定する場合はカンマ区切り
<!--{if '●,●,●'|check_category_id}-->
■特定のカテゴリページ以外に表示するタグ
<!--{if $arrPageLayout.is_category_page}-->
    <!--{if !'●'|check_category_id}-->
【指定したカテゴリページ以外に表示する内容を記述】
    <!--{/if}-->
<!--{/if}-->

※●の個所にはカテゴリIDを記載
※複数指定する場合はカンマ区切り
<!--{if !'●,●,●'|check_category_id}-->
3. 商品詳細ページで使用できる分岐タグ
■商品詳細ページに表示するタグ
<!--{if $arrPageLayout.is_product_page}-->
【表示する内容を記述】
<!--{/if}-->

※全ての商品詳細ページに表示されます。
■特定の商品詳細ページに表示するタグ
<!--{if $arrPageLayout.is_product_page}-->
    <!--{if '●'|check_product_id}-->
【指定した商品詳細ページに表示する内容を記述】
    <!--{/if}-->
<!--{/if}-->

※●の個所には商品IDを記載
※複数指定する場合はカンマ区切り
<!--{if '●,●,●'|check_product_id}-->
■特定の商品詳細ページ以外に表示するタグ
<!--{if $arrPageLayout.is_product_page}-->
    <!--{if !'5'|check_product_id}-->
【指定した商品詳細ページ以外に表示する内容を記述】
    <!--{/if}-->
<!--{/if}-->

※●の個所には商品IDを記載
※複数指定する場合はカンマ区切り
<!--{if !'●,●,●'|check_product_id}-->
4. フリーページで使用できる分岐タグ
■フリーページに表示するタグ
<!--{if $is_free_page}-->
【表示する内容を記述】
<!--{/if}-->

※全てのフリーページに表示されます。
■特定のフリーページに表示するタグ
<!--{if $is_free_page}-->
    <!--{if $free_page_name == '●'}-->
【指定したフリーページに表示する内容を記述】
    <!--{/if}-->
<!--{/if}-->

※●の個所にはフリーページ名(※1)を記載
※複数指定する場合は||区切り ※半角スペース入れる
<!--{if $free_page_name == '●' || $free_page_name == '●'}-->
※1 フリーページURLの末尾がフリーページ名となります。
URLが以下の場合はsampleがフリーページ名
https://サイトドメイン/pages/sample
5. LPページで使用できる分岐タグ
■LPページに表示するタグ
<!--{if $arrPageLayout.is_lp_page}-->
【表示する内容を記述】
<!--{/if}-->

■特定のLPページに表示するタグ
<!--{if $arrPageLayout.is_lp_page}-->
    <!--{if $smarty.get.p == '●'}-->
【表示する内容を記述】
    <!--{/if}-->
<!--{/if}-->

※●の個所にはLPフォームキーを記載
※複数指定する場合は||区切り ※半角スペース入れる
<!--{if $smarty.get.p == '●' || $smarty.get.p == '●'}-->
6. 確認ページで使用できる分岐タグ
■確認ページに表示するタグ
<!--{if $arrPageLayout.is_confirm_page}-->
【表示する内容を記述】
<!--{/if}-->
7. 完了ページで使用できる分岐タグ
下記マニュアルをご参照ください。
商品毎にタグを出し分ける方法
8. メールで使用できる分岐タグ
■メールに表示するタグ
<!--{foreach $arrOrderDetail as $order_detail}-->
<!--{if $order_detail.product_id == '●'}-->
【商品ID:●を買った時に表示する内容を記述】
<!--{/if}-->
<!--{/foreach}-->

※●の個所には商品IDを記載
※複数指定する場合は||区切り ※半角スペース入れる
<!--{if $order_detail.product_id == '●' || $order_detail.product_id == '■'}-->


応用

複数条件での分岐記述例
■例1)特定の商品詳細ページに表示、それ以外の商品詳細ページに表示するタグ
※それ以外の時にelseを使用します。
<!--{if $arrPageLayout.is_product_page}-->
    <!--{if '●'|check_product_id}-->
【指定した商品詳細ページに表示する内容を記述】
    <!--{else}-->
【指定した商品詳細ページ以外に表示する内容を記述】
    <!--{/if}-->
<!--{/if}-->

※●の個所には商品IDを記載
※複数指定する場合は、各ページの複数指定を参考にしてください。
■例2)特定の商品詳細ページに異なる内容を表示、それ以外の商品詳細ページに表示するタグ
※2つ目以降を指定する場合はelseifを使用します。
※それ以外の時にelseを使用します。
<!--{if $arrPageLayout.is_product_page}-->
    <!--{if '●'|check_product_id}-->
【商品ID:●の商品詳細ページに表示する内容を記述】
    <!--{elseif '■'|check_product_id}-->
【商品ID:■の商品詳細ページに表示する内容を記述】
    <!--{elseif '▲'|check_product_id}-->
【商品ID:▲の商品詳細ページに表示する内容を記述】
    <!--{else}-->
【指定した商品詳細ページ以外に表示する内容を記述】
    <!--{/if}-->
<!--{/if}-->

※●■▲の個所には商品IDを記載


こちらに記載がない分岐条件を行いたい場合は、サポートセンターまでメールでご連絡ください。
内容によっては、有償での対応となります。

この記事の目次

  1. if分岐について
  2. if分岐タグの記述例

ありがとうございました。
よろしければ、ご意見をお聞かせください。

件名、コメントをご入力いただき、『送信』ボタンをクリックしてください。

ご意見を送られない場合は、『閉じる』ボタンをクリックしてください。

件名:

お問い合わせ内容:

閉じる