Advanced Custom Fieldを使用しております。
セレクトフィールドの値によってクラスを付与したいのですが、
下記サイトを参考にしてフィールド1つ分のクラス付与は実装できました。
http://shohei-hey.com/blog/archives/226
しかし、同じ値を設けているもう1つのフィールドがあり、参考サイトのコードを下記のように改変しましたが、
「カテゴリ2」については値に関係なく「カテゴリ1」と同じクラスが割り当てられてしまいます。
このコードではまずいのでしょうか。
ご教授いただければ幸いです。
(「カテゴリ1」も「カテゴリ2」も値は同じ《選択肢A》、《選択肢B》を設けております。
《選択肢A》、《選択肢B》に割り当てられるCSSも《選択肢A》にはcateA、《選択肢B》にはcateBにしたいです。)
function cate_class() { $custom_cate = post_custom( 'カテゴリ1','カテゴリ2' ); if ( $custom_cate == '選択肢A' ) { echo 'cateA'; } else if ( $custom_cate == '選択肢B' ) { echo 'cateB'; } else { echo 'no-category'; } }
下記のようにfunctions.phpにもう1つのフィールドを書き込むと、そちらのクラスも付与されましたが、2つともクラスが適用されてしまいます。
function cate_class() { $custom_cate_man = post_custom( 'カテゴリ1' ); if ( $custom_cate_man == '選択肢A' ) { echo 'cateA'; } else if ( $custom_cate_man == '選択肢B' ) { echo 'cateB'; } else { echo 'fuka'; } $custom_cate_woman = post_custom( 'カテゴリ2' ); if ( $custom_cate_woman == '選択肢A' ) { echo 'cateA'; } else if ( $custom_cate_woman == '選択肢B' ) { echo 'cateB'; } else { echo 'no-category'; } }
テンプレートの記述
<!--カテゴリ1の出力用--> <span class="<?php echo cate_class('man') ?>"> <?php $field = get_field_object('カテゴリ1'); $value = get_field('カテゴリ1'); $label = $field['choices'][ $value ]; ?> <?php echo $label; ?></span> <!--カテゴリ2の出力用--> <span class="<?php echo cate_class('woman') ?>"> <?php $field = get_field_object('カテゴリ2'); $value = get_field('カテゴリ2'); $label = $field['choices'][ $value ]; ?> <?php echo $label; ?></span>
出力されたソース
<!--カテゴリ1の出力用--> <span class="cateAcateB">選択肢A</span> <!--カテゴリ2の出力用--> <span class="cateAcateB">選択肢B</span>
これを、カテゴリ1の場合はカテゴリ1だけのクラスを、
カテゴリ2の場合はカテゴリ2だけのクラスを付与したいのですが、どうしたら良いでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。