2016-12-19 66 views
1

我正在使用Wordpress和Calderawp表單來構建調查網站,並且我遇到了複選框選擇結果的問題。Wordpress get_post_metadata()返回序列化陣列

我已經使用Caldera處理器將我的調查表單中的每個收集字段推送到自定義帖子類型中的自定義字段。我的問題是,get_post_metadata返回一個看起來像一個類對象的大規模序列化​​數組。

這裏是自定義字段的一個結果的截圖,我指的是: enter image description here

而且,這裏是我當前的嘗試來改變輸出:

/** 
* Alter output of custom fields 
*/ 
add_filter('get_post_metadata', 'custom_get_post_metadata_filter', 10, 4); 
function custom_get_post_metadata_filter($value, $post_id, $meta_key, $single){ 

    //This prevents infinite loop 
    remove_filter('get_post_metadata', 'custom_get_post_metadata_filter', 10 ); 

    $value = get_post_meta($post_id, $value, true); 
    add_filter('get_post_metadata', 'custom_get_post_metadata_filter', 10, 4); 

    foreach ($value as $key => $val) { 
     $unserialized = unserialize($val); 
     echo 'key: ' . $key . '| val: ' . $unserialized . '<br/>'; 
    } 

} 

結果的代碼是這樣的:
key:some_key | val:
key:another_key | val:
key:yet_another_key | VAL:
...

我也只是想打印$val,結果是另一Array

此外,我試着使用多用的foreach設置一個新的變量,如循環:

$my_key = $val['some_key']; 

foreach($my_key as $k => $v) { 
    echo $v; 
} 

...而且我發現嵌套數組去層和層深。

有沒有人遇到過這個問題,並找到了解決方案?

回答

0

看起來像下面一行是使用由功能所需的「鑰匙」的說法錯誤的參數:

$value = get_post_meta($post_id, $value, true); 

應該

$value = get_post_meta($post_id, **$meta_key**, true);