Como salvar uma matriz com uma meta-chave no postmeta?

17

Eu tenho uma matriz salva em postmata, cada chave de matriz se torna uma metakey. Quero alterar o código para salvar toda a matriz com uma meta-chave. Como fazer isso? Obrigado!

$poddata = Array(
'pod_id' => $this->pod_id,
'url' => $this->url,
'name' => $this->name,
'description' => $this->description,
'service' => $this->service,
'status' =>$this->status,
'price' => $this->price
);

foreach ( $poddata as $k => $v ){

if ( get_post_meta( $this->id, $k ) == '' )
add_post_meta( $this->id, $meta_box, $v, true );

elseif ( $v != get_post_meta( $this->id, $k, true ) )
update_post_meta( $this->id, $k, $v );

elseif ( $v == '' )
delete_post_meta( $this->id, $k, get_post_meta( $this->id, $k, true ) );

}
Jenny
fonte

Respostas:

25

Você não precisa percorrer os valores. Basta usar update_post_meta($post_ID, {key}, {array of vals}), deve fazer!

<?php
$poddata = Array(
    'pod_id' => $this->pod_id,
    'url' => $this->url,
    'name' => $this->name,
    'description' => $this->description,
    'service' => $this->service,
    'status' =>$this->status,
    'price' => $this->price
    );

//Update inserts a new entry if it doesn't exist, updates otherwise
update_post_meta($post_ID, 'poddata', $poddata);
?>

É isso aí! Ao buscá-lo para uso, faça o seguinte:

    $poddata = get_post_meta($post_ID, 'poddata');

$ poddata é a matriz de valores.

Rutwick Gangurde
fonte
Eu tentei update_post_meta ($ post_ID, 'poddata', $ postdata), depois de salvar a postagem, vejo que a meta não é salva.
219 Jenny
oh, desculpe, ele salvou, não o vi na tabela de campos personalizados do WP. Acabei de encontrá-lo no phpAdmin. Obrigado!
219 Jenny
Ao recuperar os dados, por get_post_meta ($ post_ID, 'poddata'); Eu recebo array (0) de var_dump. Como posso obter toda a matriz?
219 Jenny
Seja bem-vindo! Tente usar print_r () ... echo "<pre>"; print_r ($ poddata); eco "</pre>";
Rutwick Gangurde 6/08/11
print_r ($ poddata) mostra a matriz ()
Jenny