Як зберегти масив з одним метамакетом у 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), після збереження публікації я бачу, що мета не збережена.
Дженні

о, вибачте, це врятувало, я його не бачив у таблиці WP Custom Fields. Я щойно знайшов його в phpAdmin. Спасибі!
Дженні

Коли ви отримуєте дані, використовуючи get_post_meta ($ post_ID, 'poddata'); Я отримую масив (0) від var_dump. Як я можу отримати весь масив?
Дженні

Ласкаво просимо! Спробуйте використовувати print_r () ... ехо "<pre>"; print_r ($ poddata); ехо "</pre>";
Rutwick Gangurde

print_r ($ poddata) показує Array ()
Jenny
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.