サポート » プラグイン » Smart Custom Fieldのチェックボックスでの分岐について

  • 解決済 takaraism

    (@takaraism)


    SmartCustomFieldを使っており、

    ・タイプ・・・チェックボックス
    ・名前・・・field_checbox
    ・選択肢・・・
          選択肢A
          選択肢B
          選択肢C

    と設定しています。

    現在、このチェックボックスに入った項目によって、表示する内容を分けるために分岐を掛けたいと思ってますがうまく動きません。

    例えば、選択肢Aと選択肢Cにチェックを入れてたら、「Aです Cです」というように出したいと思っています。それを実現するために、以下のように書きました。

    <?php if(get_post_meta($post->ID,'field_checbox',true) == '選択肢A'): ?>Aです<?php else : ?><?php endif; ?>
    <?php if(get_post_meta($post->ID,'field_checbox',true) == '選択肢B'): ?>Bです<?php else : ?><?php endif; ?>
    <?php if(get_post_meta($post->ID,'field_checbox',true) == '選択肢C'): ?>Cです<?php else : ?><?php endif; ?>

    すると、選択肢Aと選択肢Cにチェックが入っていると「Aです」しか表示しなくて、試しに選択肢Aを外すと「Cです」と出てきます。
    ここから同じタイプであるfield_checboxの選択肢を順番に読み込んでいって、先にチェックされている項目のみ表示するような仕組みなのかと気づきました。

    この同じタイプのチェックボックスの中でも、別々に分岐させる方法はあるのでしょうか?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    チェックボックスは、チェックされた項目の値の配列で返されます。

    例:

    <?php $checkboxs = SCF::get( 'field_checbox', $post->ID ); ?>
    <?php if ( in_array( '選択肢A', $checkboxs ) ): ?>Aです<?php else : ?><?php endif; ?>
    <?php if ( in_array( '選択肢B', $checkboxs ) ): ?>Bです<?php else : ?><?php endif; ?>
    <?php if ( in_array( '選択肢C', $checkboxs ) ): ?>Cです<?php else : ?><?php endif; ?>
    takaraism

    (@takaraism)

    >ishitakaさん
    長患いで返信が大変遅れてしまい申し訳ございません。
    こちら参考にして実装したところ、思い通りの反映となりました。
    本当にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。