Comment enregistrer un tableau avec une métakey dans postmeta?

17

J'ai un tableau enregistré dans postmata, chaque clé de tableau devient un métakey. Je veux changer le code pour enregistrer le tableau entier avec une métakey. Comment faire ça? Merci!

$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
la source

Réponses:

25

Vous n'avez pas besoin de parcourir les valeurs. Il suffit de l'utiliser update_post_meta($post_ID, {key}, {array of vals}), ça devrait faire!

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

C'est ça! Lorsque vous le récupérez pour utilisation, procédez comme suit:

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

$ poddata est le tableau de valeurs.

Rutwick Gangurde
la source
J'ai essayé update_post_meta ($ post_ID, 'poddata', $ postdata), après avoir enregistré le message, je vois que la méta n'est pas enregistrée.
Jenny
oh, désolé, il a sauvé, je ne l'ai pas vu sur WP Custom Fields Table. Je viens de le trouver dans phpAdmin. Merci!
Jenny
Lors de la récupération des données, par get_post_meta ($ post_ID, 'poddata'); J'obtiens le tableau (0) de var_dump. Comment puis-je obtenir l'ensemble du tableau?
Jenny
Vous êtes les bienvenus! Essayez d'utiliser print_r () ... echo "<pre>"; print_r ($ poddata); echo "</pre>";
Rutwick Gangurde du
print_r ($ poddata) montre Array ()
Jenny