ACF自定义字段的键和名称属性有哪些要求?

时间:2019-09-10 作者:Max

我有ACF custom fields 插件和我正在使用的acf_add_local_field_group 通过PHP注册自定义字段。

通过PHP创建字段时,我必须提供3个属性:

  • key: ACF唯一标识符name: post数据中包含的实际属性名称label: UI上显示的字符串documentation states the following:

    enter image description here

    Firstly, the statement about key requiring to start with "field_" seems incorrect 由于我的所有字段键都以“field\\u0”开头,但它们似乎都工作正常,这就引出了第一个问题:

    Q1: Is the leading "field_" for keys a convention or is it really a working requirement, and if so, what won\'t work if I don\'t stick to it?

    其次,我的所有字段都设置了转发器,每个特定字段(例如名称、URL、图像库)都与几个通用字段相关联,以便于内容管理(例如is_enabled 字段,以便在不删除/重新创建数据的情况下快速启用/禁用字段note 在此字段中,我可以解释为什么我禁用了某些功能),这就引出了第二个问题:

    Q2: Can I have the same generic fields (eg is_enabled) with identical key/name definition within different field groups & repeaters or should I make their key and/or name unique for each occurrence?

1 个回复
最合适的回答,由SO网友:Max 整理而成

联系ACF支持,以下是我得到的:

enter image description here

我已经做了进一步的实验,对于Q1,我提出了一个递归函数,它为所有由field_ 和自定义命名空间,that way I can define my ACF fields with simple keys (eg "url") and have them automatically converted to a proper value before the ACF gets generated.

function my_acf_key_prefix(&$value, $key)
{
    if ($key == \'key\') {
        $value = \'field_myacf_\' . $value;
    }
}
array_walk_recursive($acf_definition, \'my_acf_key_prefix\');
acf_add_local_field_group($acf_definition);
对于Q2,结果是there is still an impact of using fields with the same key within repeaters: 这与外部中继器的行为基本相同,each field with a given key is assigned a given ACF configuration, 这有no impact for fields such as "text" 但是,由于没有对其进行处理if you use processed fields with the same key but different config you have an issue (例如,如果使用具有相同键但不同“选项”配置的多个“选择”字段,则UI中存在渲染问题,其中仅应用了1个字段配置,因此渲染的选项不匹配)。

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register