【问题标题】:Display checkboxes values from ACF (Wordpress) on front在前面显示来自 ACF (Wordpress) 的复选框值
【发布时间】:2017-11-14 15:06:01
【问题描述】:

我在尝试显示使用 ACF 创建的复选框值时遇到了一些问题。 我有一组用 ACF 制作的 12 个复选框,其中每个复选框都是一个月: 一月:一月/二月:二月/三月:三月/等

我需要实现的是在前端显示所有这 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>

【问题讨论】:

    标签: php wordpress advanced-custom-fields


    【解决方案1】:

    请检查下面的代码并输出它对你有帮助。

    <?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 中的复选框字段更改字段键。还要检查下面的输出。

    【讨论】:

    • 感谢库沙尔的回答。您的代码显示所有十二个复选框,但所有复选框在前端始终显示为禁用和未选中,尽管我确实在后端检查了其中一些。
    • 如果您想启用相同功能,请从输入类型复选框中删除禁用属性,然后重试。如果我的回答有帮助,请接受我的回答。
    • 问题是现在我启用了所有 12 个复选框。在后端(1 月、4 月、7 月和 9 月)标记/选中的复选框应在前端显示为选中状态,就像您的输出图像一样。所有其他月份也应显示,但禁用。
    • 现在请检查我编辑的代码,哪些月份从支持检查仅启用所有其他月份被禁用。
    • 谢谢。它现在工作正常。需要注意的一点:ACF中复选框字段前端的返回值必须是“Label”(不是“Value”或“Both / Array”)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 2019-11-24
    • 1970-01-01
    相关资源
    最近更新 更多