¿Cómo guardar una matriz con una metaclave en postmeta?

17

Tengo una matriz guardada en postmata, cada clave de matriz se convierte en una metaclave. Quiero cambiar el código para guardar toda la matriz con una metaclave. ¿Como hacer eso? ¡Gracias!

$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
fuente

Respuestas:

25

No necesita recorrer los valores. ¡Solo use update_post_meta($post_ID, {key}, {array of vals}), debería hacerlo!

<?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);
?>

¡Eso es! Cuando lo busque para su uso, haga lo siguiente:

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

$ poddata es la matriz de valores.

Rutwick Gangurde
fuente
Intenté update_post_meta ($ post_ID, 'poddata', $ postdata), después de guardar la publicación, veo que el meta no se guarda.
Jenny
oh, lo siento, se guardó, no lo vi en la tabla de campos personalizados de WP. Lo acabo de encontrar en phpAdmin. ¡Gracias!
Jenny
Cuando recupere los datos, get_post_meta ($ post_ID, 'poddata'); Obtengo array (0) de var_dump. ¿Cómo puedo obtener toda la matriz?
Jenny
¡De nada! Intente usar print_r () ... echo "<pre>"; print_r ($ poddata); echo "</pre>";
Rutwick Gangurde
print_r ($ poddata) muestra Array ()
Jenny