Postmeta'da bir metakey ile bir dizi nasıl kaydedilir?


17

Postmata kaydedilmiş bir dizi var, her dizi anahtarı bir metakey olur. Tüm diziyi bir metakey ile kaydetmek için kodu değiştirmek istiyorum. Bu nasıl yapılır? Teşekkürler!

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

}

Yanıtlar:


25

Değerler arasında geçiş yapmanız gerekmez. Sadece kullanupdate_post_meta($post_ID, {key}, {array of vals}) , yapmalı!

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

Bu kadar! Kullanım için getirdiğinizde aşağıdakileri yapın:

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

$ poddata bir değerler dizisidir.


Update_post_meta ($ post_ID, 'poddata', $ postdata) denedim, gönderiyi kaydettikten sonra meta kaydedilmediğini görüyorum.
Jenny

oh, üzgünüm, kurtardı, WP Özel Alanlar Tablosunda görmedim. Ben sadece phpAdmin içinde buldum. Teşekkürler!
Jenny

Verileri yeniden elde ederken get_post_meta ($ post_ID, 'poddata'); Var_dump dizisini (0) alıyorum. Tüm diziyi nasıl alabilirim?
Jenny

Rica ederim! Print_r () ... echo "<pre>" kullanmayı deneyin; print_r ($ poddata); echo "</pre>";
Rutwick Gangurde

print_r ($ poddata) Array ()
Jenny
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.