从序列化的wordpress元数据中获取价值

时间:2017-03-09 03:03:48

标签: php wordpress meta

我尝试使用get_post_meta来获取与我的帖子一起保存的一些数据,但是我在查找如何取消序列化和访问数据方面遇到了麻烦。存储在数据库中的数据是

a:8:{s:10:"headerType";s:5:"image";s:11:"headerImage";s:0:"";s:5:"dates";s:0:"";s:3:"fee";a:2:{i:0;a:4:{s:4:"name";s:11:"Basic Entry";s:5:"price";s:2:"50";s:3:"url";s:0:"";s:4:"desc";s:14:"This is great.";}i:1;a:4:{s:4:"name";s:8:"Megatron";s:5:"price";s:2:"20";s:3:"url";s:0:"";s:4:"desc";s:6:"Great.";}}s:8:"currency";s:3:"USD";s:4:"item";s:1:"0";s:15:"useItemLocation";s:2:"no";s:3:"map";a:7:{s:7:"address";s:0:"";s:8:"latitude";s:1:"0";s:9:"longitude";s:1:"0";s:10:"streetview";s:1:"0";s:9:"swheading";s:2:"90";s:7:"swpitch";s:1:"5";s:6:"swzoom";s:1:"1";}}

使用此代码我可以获得:

$meta = get_post_meta($post_id, "", true);
$event_meta = $meta["_ait-event-pro_event-pro-data"];

然后我尝试的是:

$formatted_event_meta = unserialize($event_meta);
echo $formatted_event_meta["fee"][0]["name"];

希望得到基本参赛作品作为结果,但没有骰子。这是插件的一部分,因此我没有收到任何可以解决的错误。

修改

此元信息正在此处设置:

$relatedItem = $_POST['_ait-event-pro_event-pro-data']['item'];
update_post_meta( $post_id, 'ait-event-pro-related-item', $relatedItem );

1 个答案:

答案 0 :(得分:0)

问题出现了,因为检查元信息的代码是在添加帖子时执行的,这意味着大部分时间他们的元数据尚未添加。