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

}

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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.