Advanced Custom Fieldsのチェックボックスを利用した、条件分岐やループで使う時の関数です。
チェックボックスも、get_field
を使って条件を分岐させたり、記事一覧を表示させたりが可能です。
目次
チェックボックスで選択された項目を出力する関数
チェックボックスで選択されている項目の名前を span
タグで出力する場合です。そして出力されたspan
のclassには、英数字のラベル名がそれぞれ付きます。
PHP
<?php
$cfcb = get_field_object('subject');
$cfcbId = get_post_meta($post->ID,'subject');
$cfcbId = $cfcbId[0];
if($cfcb) {
foreach($cfcbId as $v) {
echo '<span class="ico-'. $v. '">' . $cfcb['choices'][$v] .'</span>';
}
}
?>
チェックの有無で条件分岐
ACFで設置したチェックボックスの有無で、表示内容を分岐させます。
PHP
<?php if ( get_field( 'フィールド名' ) ): ?>
<!-- チェックが入っている時の表示 -->
<?php else: ?>
<!-- チェックが入っていない時の表示 -->
<?php endif; ?>
上記は、1つの項目に対してチェックが「入っている・いない」で分岐しますが、複数の選択肢で分岐させる場合は以下のように記述します。
PHP
<?php if( get_field('フィールド名') == "選択肢1"): ?>
選択肢1で表示
<?php elseif( get_field('フィールド名') == "選択肢2"): ?>
選択肢2で表示
<?php elseif( get_field('フィールド名') == "選択肢3"): ?>
選択肢3で表示
<?php endif; ?>
チェックした項目を全て li のリストで出力
チェックボックスで選択した全ての項目を li
のリストタグで出力する関数です。
PHP
<?php
$fields = get_field('フィールド名');
if( $fields ): ?>
<ul>
<?php foreach( $fields as $field ): ?>
<li><?php echo $field; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
チェックした項目のラベルと名前を全て li のリストで出力
チェックボックスで選択した全ての項目のラベルと、名前を li
のリストで出力します。
出力時に、ラベルはspan
のclass名に付き、名前はそのままテキストで表示されます。
PHP
<?php
$fields = get_field('フィールド名');
if( $fields ):
?>
<ul>
<?php foreach( $fields as $field ): ?>
<li><span class="test-<?php echo $field['value']; ?>"><?php echo $field['label']; ?></span></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
項目をチェックした記事を一覧で表示
チェックボックスの項目で、選択した記事を一覧で表示します。
meta_key
にはフィールド名。meta_value
には選択肢の値を記述して、ループの中には出力させたい内容を記述します。
PHP
<?php
$args = array(
'meta_key' => 'sample', //フィールド名
'meta_value' => 'label', //値(カスタムフィールドの「選択肢」で入力した左側)
'posts_per_page' => -1 //件数
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<!-- ここに出力の内容 -->
<?php endwhile; endif; ?>
<?php wp_reset_postdata();?>
[…] 2021/10/21Advanced Custom Fieldsのチェックボックスを利用した、条件分岐やループで使う時の関数です。チェックボックスも、get_field を使って条件を分岐させ …. => 今すぐ読む […]