Come salvare un array con un metakey in postmeta?


17

Ho un array salvato in postmata, ogni chiave dell'array diventa un metakey. Voglio cambiare il codice per salvare l'intero array con un metakey. Come farlo? Grazie!

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

}

Risposte:


25

Non è necessario scorrere in sequenza i valori. Basta usare update_post_meta($post_ID, {key}, {array of vals}), dovrebbe fare!

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

Questo è tutto! Quando lo recuperi per l'utilizzo, procedi come segue:

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

$ poddata è l'array di valori.


Ho provato update_post_meta ($ post_ID, 'poddata', $ postdata), dopo aver salvato il post, vedo che la meta non viene salvata.
Jenny,

oh, scusa, mi ha salvato, non l'ho visto sulla tabella dei campi personalizzati di WP. L'ho appena trovato in phpAdmin. Grazie!
Jenny,

Quando si recuperano i dati, tramite get_post_meta ($ post_ID, 'poddata'); Ottengo array (0) da var_dump. Come posso ottenere l'intero array?
Jenny,

Prego! Prova a usare print_r () ... echo "<pre>"; print_r ($ poddata); echo "</pre>";
Rutwick Gangurde,

print_r ($ poddata) mostra Array ()
Jenny il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.