隐藏或排除前端表单中的 ACF 字段并存储默认值
Posted
技术标签:
【中文标题】隐藏或排除前端表单中的 ACF 字段并存储默认值【英文标题】:Hide or exclude an ACF field in a front end form and store default value 【发布时间】:2019-11-07 12:56:06 【问题描述】:我有一个附加到自定义帖子类型的字段组。它包含一个“状态”选择输入,用户可以从 wp 管理区域中选择一个选项。
我还有一个使用相同字段组的前端表单,因此较低级别的用户可以在前端创建帖子,但是他们不允许选择“状态”,他们必须接受默认值。
我设置了一个默认值并将其设为必需,然后使用设置 arg 从前端表单中排除该字段。这不起作用,它只是将字段值留空。
或者有没有办法在前端将字段输出为隐藏输入?
【问题讨论】:
“使用相同字段组的前端表单” - 我们究竟是通过什么插件进行交流,例如高级表单?查看您正在使用的解决方案有哪些可用的钩子,以便在表单呈现之前对其进行操作。提到的插件 f.e.当您通过函数调用 (advancedforms.github.io/guides/basic/displaying-a-form) 和一个可让您轻松添加隐藏字段的挂钩时,可以将字段排除在渲染之外,advancedforms.github.io/actions/af-form-hidden_fields 【参考方案1】:该字段必须出现在前端表单中。如果不是,则该值不会存储在 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;
);
【讨论】:
以上是关于隐藏或排除前端表单中的 ACF 字段并存储默认值的主要内容,如果未能解决你的问题,请参考以下文章