【发布时间】:2016-12-19 16:18:52
【问题描述】:
我正在使用 Wordpress 和 Calderawp 表单来构建一个调查网站,但我遇到了复选框选择结果的问题。
我使用 Caldera 处理器将我的调查表中收集的每个字段推送到自定义帖子类型中的自定义字段。我的问题是 get_post_metadata 正在返回一个看起来像类对象的大量序列化数组。
而且,这是我目前更改输出的尝试:
/**
* 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/>';
}
}
这段代码的结果是这样的:
键:some_key|验证:
键:另一个键|验证:
键:yet_another_key|验证:
...
我也刚刚尝试打印$val,结果是另一个Array
此外,我尝试使用多个 foreach 循环来设置新变量,例如:
$my_key = $val['some_key'];
foreach($my_key as $k => $v) {
echo $v;
}
...而且我发现嵌套数组层层递进。
有没有人遇到过这个问题并找到了解决方案?
【问题讨论】:
标签: php arrays wordpress custom-fields