duanjiu4498
2017-06-13 02:08
浏览 22
已采纳

显示前面ACF(Wordpress)的复选框值

I'm having some trouble trying to display checkboxes values created with ACF. I have a group of 12 checkboxes made with ACF, where each checkbox is a month: jan : Jan / feb : Feb / mar : Mar / etc.

What i need to achieve is to display all of those 12 values in the frontend, with a particular CSS class if the month has been checked in the backend. For example, if the user checks "Jan", "Apr", "Jul" and "Sep":

<span class="selected">Jan</span>
<span>Feb</span>
<span>Mar</span>
<span class="selected">Apr</span>
<span>May</span>
<span>Jun</span>
<span class="selected">Jul</span>
<span>Ago</span>
<span class="selected">Sep</span>
<span>Oct</span>
<span>Nov</span>
<span>Dec</span>

Using the example code from the docs (https://www.advancedcustomfields.com/resources/checkbox/), I'm only getting the selected months but not all months in the frontend:

<span>Jan</span>
<span>Apr</span>
<span>Jul</span>
<span>Sep</span>
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • duanjia6959 2017-06-13 05:56
    最佳回答

    Please check below code and output it helps you.

    <?php $allCheckbox = get_field('month_checked_boxes'); //Checked value from backend
    
    $field_key = "field_593f77cdc5068"; //Get value using key
    $post_id = get_the_ID();
    $field = get_field_object($field_key, $post_id);
    foreach($field['choices'] as $lab => $val){
    if(in_array($val, $allCheckbox)){
        $checked = 'checked = "checked"';   
        $enable = '';       
    } else {
        $checked = '';
        $enable = 'disabled=""';
    } ?>
    <input type="checkbox" name="month" id="month" value="<?php echo $lab; ?>" <?php echo $enable; ?> <?php echo $checked; ?> /><?php echo $val; ?><br>
    

    Please change field key as par your checkbox field from ACF. Also check output below.

    output

    评论
    解决 无用
    打赏 举报