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

}

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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.