ACF Pro中的add_row不保存转发器值

时间:2015-12-16 06:06:36

标签: wordpress advanced-custom-fields

我的情况

我正在使用Advanced Custom Fields Pro为wordpress中的帖子存储元数据。

我的帖子是动态创建的(不是通过管理界面),这意味着我明确需要使用字段键而不是字段名来填充元数据。我的一个字段是一个带有单个文本区域的转发器字段,另一个是标准文本区域。

我的代码

以下代码就是我所说的(每个帖子一次)。该帖子之前使用wp_insert_post()创建。

  // Populate "Name"
  update_field('field_566e360961c2f', 'John Doe', $wp_identifier);

  // Populate "Sponsors"
  foreach($sponsors as $sponsor) {

      // Define "Sponsor Name"
      $new_sponsor = array(
        'field_566e32fb943a5' => 'Beats and Corn Companye'
      );

      add_row('field_566e32bd943a4', $new_sponsor, $wp_identifier);
  }

结果是填充了标准文本字段,并创建了一个“赞助商”转发器项目,但赞助商名称的值为空。

生成的相关wp_postmeta数据如下所示:

|   18226 |      71 | name                    | John Doe
|   19234 |      71 | sponsors                | 1                                                            |
|   19235 |      71 | _0_field_566e32fb943a5  | Beats and Corn Company                                                                             |

我的问题

我做错了什么?查看add_row()的文档,这似乎是正确的方法。转发器字段是否有可能以不同的方式记录我不知道的密钥?

1 个答案:

答案 0 :(得分:6)

这在今天的文档中并没有得到令人难以置信的清晰,但事实证明 movies = fetchMovie.execute(sort).get(); if (movies == null) { movieList = new ArrayList<>(); } else if (addMovies) { movieList.addAll(movies); } else { movieList = movies; } 仅在已保存现有行时才有效。第一次尝试填充转发器字段时,必须使用add_row代替并传递值数组数组。

更正后的代码:

update_field