首页 > 解决方案 > 隐藏或排除前端表单中的 ACF 字段并存储默认值

问题描述

我有一个附加到自定义帖子类型的字段组。它包含一个“状态”选择输入,用户可以从 wp 管理区域中选择一个选项。

我还有一个使用相同字段组的前端表单,因此较低级别的用户可以在前端创建帖子,但是他们不允许选择“状态”,他们必须接受默认值。

我设置了一个默认值并将其设为必需,然后使用设置 arg 从前端表单中排除该字段。这不起作用,它只是将字段值留空。

或者有没有办法在前端将字段输出为隐藏输入?

标签: phphtmlwordpressadvanced-custom-fields

解决方案


该字段必须出现在前端表单中。如果不是,则该值不会存储在 post_meta 表中。你必须让它不可见。

你可以这样做(这里我的 acf 字段 slug 是“id_label”):

// set default value
add_filter('acf/load_field/name=id_label', function($field) {   

    // set a dynamic value if necessary
    $field['default_value'] = '666';

    return $field;
});

// hide the field in frontend form
add_filter('acf/prepare_field/name=id_label', function($field) {
    
    if(!is_admin()) {
        $field['wrapper']['class'] = 'hide';
    }

    return $field;
});

推荐阅读