如何通过PHP修改高级自定义字段Post对象字段的值?
我正在创建一个导入脚本,以从客户端提供的Excel电子表格中迁移数据,并将每一行转换为WordPress帖子。到目前为止,我已经创建了帖子,并且正确填写了所有自定义字段……除了一个 其中一个字段是关联零件。我想为这个字段使用Post对象,但是我似乎找不到任何关于通过PHP脚本将Post对象(或者最好是多个对象)分配给这个字段值的格式的文档 下面是我用来填充“specifications”repeater字段的一些代码的示例,该字段有两个子字段:label和value如何通过PHP修改高级自定义字段Post对象字段的值?,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,我正在创建一个导入脚本,以从客户端提供的Excel电子表格中迁移数据,并将每一行转换为WordPress帖子。到目前为止,我已经创建了帖子,并且正确填写了所有自定义字段……除了一个 其中一个字段是关联零件。我想为这个字段使用Post对象,但是我似乎找不到任何关于通过PHP脚本将Post对象(或者最好是多个对象)分配给这个字段值的格式的文档 下面是我用来填充“specifications”repeater字段的一些代码的示例,该字段有两个子字段:label和value $field_key = '
$field_key = 'field_53ef95cead820';
$value = get_field($field_key, $postID);
foreach($specs as $spec):
$specArray = explode(':',$spec);
if($specArray[0] && $specArray[1]):
$value[] = array("label" => $specArray[0], "value" => $specArray[1]);
endif;
++$i;
endforeach;
update_field( $field_key, $value, $postID );
要修改关联零件字段,我应该像这样将其设置为一个转发器,然后创建某种数组来填充它,还是应该使用multi-select选项并仍然向其传递某种数组。我很乐意选择这两种方法,我只是需要一些方法来获取这些字段。在初始导入期间不可能添加关联产品(其他帖子),因为当您将第一个产品导入WordPress时,其关联部分尚未创建。由于这个原因,我不得不在WordPress中运行两个导入的电子表格 在第一次导入时,它创建了所有帖子,并添加了所有非关系型自定义字段,因为它们出现在电子表格中。我设置脚本,以表格格式打印导入产品的post ID,使我能够轻松地将脚本输出中的所有ID复制并粘贴回电子表格中的“产品ID”字段。脚本检查是否存在产品ID,该字段将确定它是在创建新的帖子/产品还是在更新现有的帖子/产品 一旦所有的产品都被导入,并且他们的尊重ID被添加到电子表格中,我们就开始了第二次导入。我们使用了完全相同的电子表格,唯一的区别是现在它在一列中添加了WordPress ID
1. if($product['Associated Parts']):
2. $assParts = explode('|',$product['Associated Parts']);
3. unset($assIDs);
4. foreach($assParts as $assPart):
5. unset($assID);
6. if($assPart):
7. $assID = get_page_by_title( $assPart , 'OBJECT' , 'product' );
8. $assIDs[] = $assID->ID;
9. endif;
10. endforeach;
11. $assIDs = array_filter($assIDs);
12. update_field( 'field_542c5dc44272e' , $assIDs , $product['Page ID'] );
13. endif;
代码逐行分解:
我们完成了。此方法也适用于Relationship字段,该字段还保存了相关帖子ID的列表,如下所示。