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

时间:2017-06-13 02:08:51

标签: php wordpress advanced-custom-fields

我在尝试显示使用ACF创建的复选框值时遇到了一些麻烦。 我有一组由ACF制作的12个复选框,其中每个复选框都是一个月: jan:Jan / feb:Feb / mar:Mar / etc。

我需要实现的是在前端显示所有这12个值,如果在后端检查了月份,则使用特定的CSS类。例如,如果用户检查“Jan”,“Apr”,“Jul”和“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>

使用文档(https://www.advancedcustomfields.com/resources/checkbox/)中的示例代码,我只会在前端获得所选月份而非所有月份:

<span>Jan</span>
<span>Apr</span>
<span>Jul</span>
<span>Sep</span>

1 个答案:

答案 0 :(得分:0)

请检查以下代码并输出它可以帮助您。

<?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>

请将字段键更改为ACF中的复选框字段。同时检查下面的输出。

output