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

}

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.