sli*_*fty 2 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);
}
Run Code Online (Sandbox Code Playgroud)
结果是填充标准文本字段,并创建单个"赞助商"转发器项目,但赞助商名称的值为空.
wp_postmeta
生成的相关数据如下所示:
| 18226 | 71 | name | John Doe
| 19234 | 71 | sponsors | 1 |
| 19235 | 71 | _0_field_566e32fb943a5 | Beats and Corn Company |
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?查看文档add_row()
似乎是正确的方法.转发器字段是否有可能以不同方式记录我不知道的密钥?
这在今天的文档中并不是非常清楚,但事实证明add_row
只有在已经保存现有行的情况下才有效.当您第一次尝试填充转发器字段时,您必须使用update_field
而不是传递值数组的数组.
// Populate "Name"
update_field('field_566e360961c2f', 'John Doe', $wp_identifier);
// Populate "Sponsors"
$new_sponsors = array();
foreach($sponsors as $sponsor) {
// Define "Sponsor Name"
$new_sponsor = array(
'field_566e32fb943a5' => 'Beats and Corn Companye'
);
$new_sponsors[] = $new_sponsor;
}
update_field('field_566e32bd943a4', $new_sponsors, $wp_identifier);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2436 次 |
最近记录: |