【问题标题】:How to add fields dinamically (with a loop?) in ACF for Wordpress?如何在 ACF for Wordpress 中动态添加字段(使用循环?)?
【发布时间】:2021-03-23 07:29:54
【问题描述】:

我一直在寻求其他问题的帮助,但没有一个能解决我的疑问。
我在我的 Wordpress 网站中安装了 ACF,它允许编辑添加事件和相关细节。我在字段组中创建了一些字段。
除了一个字段event_length(表示事件的天数)之外,一切都很好。
此字段接受一个数字,此数字表示特定事件的长度,以天为单位
当此字段填充了一个值(我们称之为 n)时,日期时间选择器字段(因此,另一个字段)应显示在下方并带有标签“第 1 天”,以便编辑者可以选择与该日期相关的日期日。 如果值为 50,则下面应显示 50 个日期时间选择器字段。
我尝试使用 add_row() 函数,但我不知道如何根据 event_length使用它> 字段值。

【问题讨论】:

  • 我认为 ACF 不可能做到这一点。但是,如果您弄清楚中继器字段在 acf 中是如何工作的,您也许可以通过大量编码来做到这一点......

标签: javascript html wordpress advanced-custom-fields


【解决方案1】:

您需要结合使用add_row 函数和load_field 过滤器

https://www.advancedcustomfields.com/resources/add_row/ https://www.advancedcustomfields.com/resources/acf-load_field/

我对你的代码一无所知,但它可能看起来像这样:

function pre_populate_date_rows($date_repeater) {
  if (!have_rows($date_repeater) {
    $event_length = get_field('event_length', $post_id);
    
    for($i = 0; i < $event_length; i++) {
      add_row($field->key, array('time' => get_date(), $post_id);
    }
  }
}

add_filter('acf/load_field/name=date_repeater', 'pre_populate_date_rows');

请注意,我不知道$field-&gt;key 是否是实际属性,但您应该能够调试如何从 $field 对象获取密钥。另请注意,您需要使用默认数据填充您的行,因此我只是通过 get_date 使用当前日期时间

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-16
    • 2019-06-03
    • 2023-03-06
    • 2020-07-19
    • 2020-08-19
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多