Eu imaginei que deixaria os valores meta salvando em vários campos no banco de dados, porque eu fiz alocação de pre_get_post
de filtragem de consulta. Alguns dos recursos lá são para pesquisar / filtrar metadados pós-dados e começaria a tornar as coisas muito difíceis se eu fosse começar a salvar valores em valores duplamente serializados. Um bom hábito para manter se eu fosse salvar apenas valores simples e mais simples no futuro próximo.
Para esclarecer alguns dos problemas que eu tive ... optei NÃO para usar update_post_meta()
ao salvar e simplesmente excluir todos os valores primeiro e depois adicioná-los logo em seguida. Verificar o valor antigo com o novo e, em seguida, agir sobre ele estava ficando muito complexo. Provavelmente não é a melhor prática.
if(isset($_POST[$field['id']])) {
$new = $_POST[$field['id']];
}
//Store repeater fields as one dimentional array with same key meta fields
if(is_array($new) && isset($new[0])){
//DELETE EVERYTHING FIRST
delete_post_meta($post_id, $field['id']);
foreach ($new as $key => $value) {
add_post_meta($post_id, $field['id'], $value);
}
}