Advance Custom Feildのチェックボックスの返り値はカンマ区切りの文字列だった気がするので(うろ覚えですが)
$checkbox_values = (get_field(‘your_field’))?explode(‘,’,get_field(‘your_field’)):array();
で値を入れてから
in_array()で判断させるのがよろしいかと思います。
回答有難うございます!
in_array()で判断させた後CSSに指示出すことは可能でしょうか??
現在のベストとしては背景(画像)をあるorなしで分けれることがベストです。
初心者で申し訳ありませんが指導していただけると幸いです。
よろしくお願いします!
どのような実装をしているか、どのようなCSSを当てるのかに依って変わります。
in_arrayを判定材料にしてif文を軸にecho文を組み合わせるだけですので
検索エンジンなどで探しつつ実際にやってみたほうが理解が進むと思います。
php echo if
ありがとうございます。
ネットで探してみましたがなかなか思うようなものに行き着きません。
解決した際には方法を掲載いたします、
僕がやりたいのは、
チェックボックスの内容が
A, B , C , D , Eとあって
チェックされた項目が A , Eの場合
A , E → 緑色の正方形の画像を表示
B , C , D → 白の正方形の画像を表示
としたいのですが上記方法でも出来そうにありませんでした。
別のデザインを考えたいと思います。
ありがとうございました。
vialist2011さん、今晩は。
横から失礼致します。
Advanced Custom Fields v3.5.3.1
WordPress 3.4.2
で試してみました。ざっくりこんな感じでどうでしょうか。
赤、青、黄という順にカスタムフィールドを定義しています。
<?php
//チェックボックスフィールドの値取得(チェックがあれば、配列で返ってくる)
$fields = get_field( 'color' );
if( is_array( $fields ) ) {
//in_arrayで一括検索するため配列を入れ子にする
$fields = array( $fields );
//赤と青が選択されている時(赤、青の順で定義されている前提)
if( in_array( array( '赤','青' ), $fields ) ) {
echo "赤と青が選択されました。";
}
//赤と黄が選択されている時(赤、黄の順で定義されている前提)
if( in_array( array( '赤','黄' ), $fields ) ) {
echo "赤と黄が選択されました。";
}
}
?>
例の場合、赤と青にチェックが入ってると配列変数$fieldsの中身は以下のようになっています。
array
0 =>
array
0 => string '赤' (length=3)
1 => string '青' (length=3)
返信ありがとうございます。
上記のものだと、画像の取得ができなくないですか??
初心者で申し訳ないですが、その部分のアドバイスをいただければ幸いです。
よろしくお願いします!