我想将旧插件的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?
答案 0 :(得分:0)
您可以使用ACF的add_row()方法:https://www.advancedcustomfields.com/resources/add_row/
首先将旧插件的元值分割为\ n,然后由||遍历,然后为每一行使用add_row()方法。