ACF5:对HTML元素ID使用字段名而不是字段键

时间:2019-06-09 18:01:46

标签: wordpress advanced-custom-fields

我已经接管了一个高度依赖“高级自定义字段”的插件。为了进行进一步的开发,我将ACF从版本4更新到了最新版本(5.8.x)。

该插件包含依赖于HTML元素(例如输入)ID的样式和脚本,例如acf-field-header_caption,其中header_caption是字段名称。这在ACF 4上效果很好,但是在版本5中,ID和类使用的编码友好字段密钥(例如5ac098bae96e4)少得多,例如:acf-field-5ac098bae96e4。 (自定义字段已添加到post_type中,并在后端的post_type上进行了编辑。)

示例:

ACF v4中的输入字段(我需要):

<input type="text" id="acf-field-header_caption" class="text" name="fields[field_5ac098bae96e4]" value="" placeholder="">

ACF v5中的相同字段(我不想要):

<input type="text" id="acf-field-5ac098bae96e4" class="text" name="fields[field_5ac098bae96e4]" value="" placeholder="">

是否有一种方法可以还原为使用字段名而不是字段键的HTML ID?

1 个答案:

答案 0 :(得分:0)

John Huebner在ACF支持论坛上回答了这个问题(谢谢!)。

无法恢复为旧的类和ID格式。这意味着,在更新为ACF 5时,您必须更新自定义脚本和CSS。

如果喜欢使用jQuery或CSS选择器之类的字段名而不是字段键,则可以在包装div中使用data-name属性。从上面引用header_caption输入字段的选择器示例:

[data-name="header_caption"] input

(这对于文本字段,单选字段及其类似内容在包装器中具有多个输入非常有用。)

我引用了原始答案:

  

否,无法还原字段ID值。您将在字段div的data-name =“ field_name_here”中找到字段名称。

     

除了更改ID和类之外,即使更改它们也可能对JS没有帮助。如果JS依赖于ACF JS,那么它可能仍然无法工作。 ACF5中的JS与ACF4完全不同,与之交互的任何自定义JS都需要完全重建。