0

我想将旧插件的 wp_postmeta 数据转换为高级自定义字段 ACF(专业版,但这不是重点)。旧插件将所有数据保存在一个 meta_value 中(用||and分隔\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?

4

1 回答 1

0

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

拆分旧插件的元值,首先是 \n,然后是 ||,循环遍历它并对每一行使用 add_row() 方法。

于 2019-05-15T12:02:52.070 回答