Jak zapisać tablicę z jednym metakey w postmeta?


17

Mam tablicę zapisaną w postmata, a każdy klucz tablicy staje się metakonsem. Chcę zmienić kod, aby zapisać całą tablicę za pomocą jednego metakey. Jak to zrobić? Dzięki!

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

}

Odpowiedzi:


25

Nie musisz zapętlać wartości. Po prostu użyj update_post_meta($post_ID, {key}, {array of vals}), powinno wystarczyć!

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

Otóż ​​to! Po pobraniu go do użycia wykonaj następujące czynności:

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

$ poddata to tablica wartości.


Próbowałem update_post_meta ($ post_ID, 'poddata', $ postdata), po zapisaniu posta widzę, że meta nie jest zapisywana.
Jenny,

och, przepraszam, zapisano, nie widziałem go na WP Custom Field Table. Właśnie znalazłem to w phpAdmin. Dzięki!
Jenny,

Podczas pobierania danych przez get_post_meta ($ post_ID, 'poddata'); Dostaję tablicę (0) z var_dump. Jak mogę uzyskać całą tablicę?
Jenny,

Nie ma za co! Spróbuj użyć print_r () ... echo "<pre>"; print_r ($ poddata); echo "</pre>";
Rutwick Gangurde,

print_r ($ poddata) pokazuje Array ()
Jenny
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.