将逗号分隔列表转换为序列化数组以作为后元导入

时间:2019-10-01 作者:rudtek

我有一个WordPress网站,它是为会员制定制表的。我正在更新网站,并试图找出如何将新字段作为序列化数据重新上传。

例如,“member”CPT有一个名为“hours\\u of\\u operation”的自定义字段。该字段中的数据为“上午/白天”。但我想把它变成a:2{{i:0;s:7:"Morning";i:1;s:7:"Daytime";}.

其他数据以其他方式存储,但我正在尝试将一些数据拼凑在一起。

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

如果需要在PHP中进行此转换,作为任何导入过程的一部分,那么可以将逗号分隔的值转换为一个数组explode(), 然后使用update_post_meta(), 将自动为您序列化值:

$value = \'Morning,Daytime\';
$array = explode( \',\', $value );

update_post_meta( $post_id, \'hours_of_operation\', $array );
使用trim() 如果逗号分隔的值包括或可能包括空格:

$value = \'Morning, Daytime\';
$array = explode( \',\', $value );
$array = array_map( \'trim\', $array );

update_post_meta( $post_id, \'hours_of_operation\', $array );
如果出于任何原因,需要在PHP中序列化值yuorself,可以使用serialize() 将数组转换为序列化字符串。

$value      = \'Morning,Daytime\';
$array      = explode( \',\', $value );
$serialized = serialize( $array );

相关推荐

Import user data using CSV

我想使用CSV文件导入用户信息。我正在使用BP Groups Import User plugin.挑战是在CSV文件中添加名字和姓氏列,但我无法获得要保存的值。我的桌子是| email | first name | last name | moderator | admin | +------------+------------+-----------+-----------+-------+ |[email protected] | max | biagi |