Wie speichere ich ein Array mit einem Metakey in Postmeta?


17

Ich habe ein Array in Postmata gespeichert, jeder Array-Schlüssel wird zu einem Metakey. Ich möchte den Code ändern, um das gesamte Array mit einem Metakey zu speichern. Wie geht das? Vielen Dank!

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

}

Antworten:


25

Sie müssen die Werte nicht durchlaufen. Verwenden update_post_meta($post_ID, {key}, {array of vals})Sie einfach , sollte es tun!

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

Das ist es! Wenn Sie es zur Verwendung abrufen, gehen Sie wie folgt vor:

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

$ poddata ist das Array von Werten.


Ich habe update_post_meta ($ post_ID, 'poddata', $ postdata) ausprobiert. Nach dem Speichern des Posts wird das Meta nicht gespeichert.
Jenny

oh, sorry, es wurde gespeichert, ich habe es nicht in der WP Custom Fields Table gesehen. Ich habe es gerade in phpAdmin gefunden. Vielen Dank!
Jenny

Beim Abrufen der Daten mit get_post_meta ($ post_ID, 'poddata'); Ich erhalte Array (0) von var_dump. Wie kann ich das ganze Array bekommen?
Jenny

Bitte! Versuchen Sie es mit print_r () ... echo "<pre>"; print_r ($ poddata); Echo "</ pre>";
Rutwick Gangurde

print_r ($ poddata) zeigt Array ()
Jenny
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.