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

问题描述:

我在尝试显示使用ACF创建的复选框值时遇到了一些问题。 我有一组与ACF,其中每个复选框是一个月做12个复选框: 1月:一月/二月:二月/三月:三月/等在前面显示来自ACF(Wordpress)的复选框值

我需要实现的是显示所有12如果在后端检查月份,则使用特定的CSS类。例如,如果用户检查“月”,“月”,“月”和“月”:

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

请检查下面的代码和输出它可以帮助你。

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

+0

感谢您的答案Kushal。 您的代码显示了所有12个复选框,但所有复选框始终显示为已禁用,未选中前端,尽管我在后端检查了其中的一些复选框。 – Fedegiro

+0

如果您想启用相同的功能,请将禁用的属性从输入类型复选框中删除,然后重试。如果我的回答有帮助,请接受我的回答。 –

+0

问题是,现在我得到所有12复选框启用。在后端(1月,4月,7月和9月)标记/检查的复选框应该像在输出图像上一样显示为在前端进行检查。所有其他月份也应显示,但禁用。 – Fedegiro