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.