Bagaimana cara menyimpan array dengan satu metakey di postmeta?

17

Saya memiliki array yang disimpan di postmata, setiap kunci array menjadi metakey. Saya ingin mengubah kode untuk menyimpan seluruh array dengan satu metakey. Bagaimana cara melakukannya? Terima kasih!

$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
sumber

Jawaban:

25

Anda tidak perlu mengulang-ulang nilainya. Cukup gunakan update_post_meta($post_ID, {key}, {array of vals}), itu harus dilakukan!

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

Itu dia! Saat Anda mengambilnya untuk digunakan, lakukan hal berikut:

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

$ poddata adalah array nilai.

Rutwick Gangurde
sumber
Saya mencoba update_post_meta ($ post_ID, 'poddata', $ postdata), setelah menyimpan posting, saya melihat meta tidak disimpan.
Jenny
oh, maaf, sudah disimpan, saya tidak melihatnya di WP Custom Fields Table. Saya baru saja menemukannya di phpAdmin. Terima kasih!
Jenny
Saat mengambil kembali data, dengan get_post_meta ($ post_ID, 'poddata'); Saya mendapatkan array (0) dari var_dump. Bagaimana saya bisa mendapatkan seluruh array?
Jenny
Sama-sama! Coba gunakan print_r () ... echo "<pre>"; print_r ($ poddata); gema "</pre>";
Rutwick Gangurde
print_r ($ poddata) menunjukkan Array ()
Jenny