导入Wordpress元数据并将其转换为ACF转发器字段

时间:2019-05-15 11:53:17

标签: mysql wordpress advanced-custom-fields acfpro

我想将旧插件的wp_postmeta数据转换为Advanced Custom Fields ACF(Pro,但这不是重点)。旧插件将所有数据保存在一个meta_value中(用||\n分隔),而ACF将使用多个值:

MySQL中的旧插件数据:

meta_id 
post_id    1000
meta_key   "oldplugname"
meta_value "data1||url1\ndata2||url2\ndata3||url3\n"

如您所见,每个post_id我有零到多个数据<-> URL

如何将其转换为ACF Pro中继器字段(我们将此字段称为“中继器”)?

尝试建立某物时。与转发器类似,我会得到3个data-url:

meta_key              -> meta_value

repeaterfield         -> 3
_repeaterfield        -> field_5cdbf84150b2a
repeaterfield_0_data  -> aaa
_repeaterfield_0_data -> field_5cdbf84f50b2b
repeaterfield_0_url   -> http://urlforaaa.com
_repeaterfield_0_url  -> field_5cdbf84f50b2c
repeaterfield_1_data  -> bbb
_repeaterfield_1_data -> field_5cdbf84f50b2b
repeaterfield_1_url   -> http://urlforbbb.com
_repeaterfield_1_url  -> field_5cdbf84f50b2c
repeaterfield_2_data  -> ccc
_repeaterfield_2_data -> field_5cdbf84f50b2b
repeaterfield_2_url   -> http://urlforccc.com
_repeaterfield_2_url  -> field_5cdbf84f50b2c

那么有什么主意,如何将旧数据从“ oldplugin”转换为ACF?

1 个答案:

答案 0 :(得分:0)

您可以使用ACF的add_row()方法:https://www.advancedcustomfields.com/resources/add_row/

首先将旧插件的元值分割为\ n,然后由||遍历,然后为每一行使用add_row()方法。