Làm thế nào để lưu một mảng với một metakey trong postmeta?


17

Tôi có một mảng được lưu trong postmata, mỗi khóa mảng trở thành một metakey. Tôi muốn thay đổi mã để lưu toàn bộ mảng với một metakey. Làm thế nào để làm điều đó? Cảm ơn!

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

}

Câu trả lời:


25

Bạn không cần phải lặp qua các giá trị. Chỉ cần sử dụng update_post_meta($post_ID, {key}, {array of vals}), nó nên làm!

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

Đó là nó! Khi bạn tìm nạp nó để sử dụng, hãy làm như sau:

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

$ poddata là mảng các giá trị.


Tôi đã thử update_post_meta ($ post_ID, 'poddata', $ postdata), sau khi lưu bài đăng, tôi thấy meta không được lưu.
Jenny

oh, xin lỗi, nó đã được lưu, tôi đã không thấy nó trên Bảng tùy chỉnh WP. Tôi chỉ tìm thấy nó trong phpAdmin. Cảm ơn!
Jenny

Khi lấy lại dữ liệu, bởi get_post_meta ($ post_ID, 'poddata'); Tôi nhận được mảng (0) từ var_dump. Làm thế nào tôi có thể nhận được toàn bộ mảng?
Jenny

Không có gì! Hãy thử sử dụng print_r () ... echo "<pre>"; print_r ($ poddata); tiếng vang "</ pre>";
Rutwick Gangurde

print_r ($ poddata) hiển thị Mảng ()
Jenny
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.