サポート » 使い方全般 » チェックボックスについて

  • チェックボックスで選択したもの判別して画像を表示したいと考えています。
    例えば、オレンジ、りんご、ぶどう、スイカとチェックボックスがあり、オレンジとりんごにチェックがはいってるとします。
    その場合にオレンジとりんごの画像が出したいのです(画像は1枚です)

    <?php if(in_array('オレンジ', get_field('service',$post->ID) )): ?>
        <img src="<?php bloginfo('template_url'); ?>/img/orange_apple.png" width="300" height="100" />
    <?php endif; ?>

    ここまではできたのですが、これだとオレンジだけが選択された場合になります。
    どのようにすればオレンジとりんごという条件になりますか??

    <?php if(in_array('オレンジ','りんご', get_field('service',$post->ID) )): ?>
        <img src="<?php bloginfo('template_url'); ?>/img/orange_apple.png" width="300" height="100" />
    <?php endif; ?>

    こんな感じかと思って試したのですがだめでした。
    教えて頂ければ幸いです。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • get_field() というのは、Advanced Custom Fields を使用するという前提ですね。

    オレンジとりんご

    「と」が「少なくともどちらか一方」を意味する場合
    <?php
    $fruits = get_field('service',$post->ID);
    if(in_array('オレンジ',$fruits ) || in_array('りんご',$fruits )) :
    ?>
        <img src="<?php bloginfo('template_url'); ?>/img/orange_apple.png" width="300" height="100" />
    <?php endif; ?>
    
    「と」が「両方とも」を意味する場合
    <?php
    $fruits = get_field('service',$post->ID);
    if(in_array('オレンジ',$fruits ) && in_array('りんご',$fruits )) :
    ?>
        <img src="<?php bloginfo('template_url'); ?>/img/orange_apple.png" width="300" height="100" />
    <?php endif; ?>
    トピック投稿者 kent18557894

    (@kent18557894)

    ありがとうございます!!
    表示されました!!
    画像を表示する部分を背景に指定することもできるんですか??
    CSSで背景に指定できるとベストなのですが。
    質問が多くてすいません!
    よろしくお願いします!

    トピック投稿者 kent18557894

    (@kent18557894)

    ごめんなさい!
    それは
    <img src=”<?php bloginfo(‘template_url’); ?>/img/orange_apple.png” width=”300″ height=”100″ />を
    <style>background-image:画像のパス</style>に変更でできますね!

    チェックがついてる場合とついてない場合で分離したい場合はどうすればいいのでしょうか??

    カスタムフィールドの値と画像の関係、「と」が AND なのか OR なのかわからないと正確なことは言えませんが、カスタムフィールドの値を英語にして、それをクラスに指定すればよいのでは?

    Advanced Cusom fields のオプションで、
    値:ラベル(逆かもしれない)
    orange:オレンジ
    apple:りんご
    としておき、テンプレート側で

    <?php
    $cfv = カスタムフィールドを特定; (ここが何とも言えないところです)
    ?>
    <div class="<?php echo $cfv; ?>">
    </div>
    
    div.orange {backbround:・・}
    div.apple {backbround:・・}

    とやってやればできそうな気がします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「チェックボックスについて」には新たに返信することはできません。