postmeta에서 하나의 메타 키로 배열을 저장하는 방법은 무엇입니까?


17

postmata에 저장된 배열이 있는데 각 배열 키는 메타 키가됩니다. 하나의 메타 키로 전체 배열을 저장하도록 코드를 변경하고 싶습니다. 그렇게하는 방법? 감사!

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

}

답변:


25

값을 반복 할 필요가 없습니다. 그냥 사용해야 update_post_meta($post_ID, {key}, {array of vals})합니다!

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

그게 다야! 사용을 위해 가져 오면 다음을 수행하십시오.

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

$ poddata는 값의 배열입니다.


게시물을 저장 한 후 update_post_meta ($ post_ID, 'poddata', $ postdata)를 시도했는데 메타가 저장되지 않은 것을 확인했습니다.
Jenny

죄송합니다. WP Custom Fields Table에 표시되지 않았습니다. 방금 phpAdmin에서 찾았습니다. 감사!
Jenny

데이터를 검색 할 때 get_post_meta ($ post_ID, 'poddata'); var_dump에서 array (0)을 얻습니다. 전체 배열을 어떻게 얻을 수 있습니까?
Jenny

천만에요! print_r ()를 사용해보십시오 ... echo "<pre>"; print_r ($ poddata); 에코 "</ pre>";
Rutwick Gangurde

print_r ($ poddata)는 Array ()를 보여줍니다
Jenny
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.