このページに倣ってreally_simple_csv_importer_save_meta
を使って配列に変換すればいいようです。
function really_simple_csv_importer_save_meta_filter( $meta, $post, $is_update ) {
$meta['img'] = str_replace( '|', ",", $meta['img'] );
$meta = explode( ',', $meta['img'] );
$meta = array( 'img' => $meta );
return $meta;
}
add_filter( 'really_simple_csv_importer_save_meta', 'really_simple_csv_importer_save_meta_filter', 10, 3 );
ただしこの場合シリアライズされた状態で保存されるので管理画面では見る事ができません。
見れなくても保存したものを取り出せればいいだけならこれだけでいいと思います。
管理画面で見たい、編集したいならば少々ダサイですが
function really_simple_csv_importer_save_meta_filter( $meta, $post, $is_update ) {
$meta['img'] = str_replace( '|', ",", $meta['img'] );
$meta = explode( ',', $meta['img'] );
$meta = array( 'Temporary_Field_Name' => $meta );
return $meta;
}
add_filter( 'really_simple_csv_importer_save_meta', 'really_simple_csv_importer_save_meta_filter', 10, 3 );
function my_add_post_meta() {
$args = array(
'posts_per_page' => -1,
'post_type' => 'post',
);
$posts = get_posts( $args );
$post_ids = wp_list_pluck( $posts, 'ID' );
foreach( $post_ids as $post_id ) {
if( $metas = get_post_meta( $post_id, 'Temporary_Field_Name', true ) ) {
foreach( $metas as $meta ) {
add_post_meta( $post_id, 'img', $meta, false );
}
delete_post_meta( $post_id, 'Temporary_Field_Name' );
}
}
}
add_filter( 'admin_init', 'my_add_post_meta');
一旦別名で保存してから取り出して保存し直せば管理画面で見られます。
どちらのコードもカスタムフィールドの保存が済んだら不要なので削除してください。
Smart Custom Fields等を利用する方法もありますが、少し設定が必要なので手間をかけたくなければ上記の方法が楽だと思います。