【问题标题】:Getting value from serialized wordpress meta data从序列化的 wordpress 元数据中获取价值
【发布时间】:2017-03-09 03:03:47
【问题描述】:

我正在尝试使用 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 );

【问题讨论】:

  • 顺便说一句,在该数据中,["fee"][0]["name"] == "Basic Entry"["fee"][1]["name"] == "Megatron"
  • 啊,谢谢,你说得对。还有其他我哪里出错的想法吗?
  • 此处未列出的地方。因为只需将您的回声更改为我在此处列出的正确参考,我就能得到您想要的结果。
  • 这个元数据是使用 add_post_meta 还是其他方式添加的?

标签: php wordpress meta


【解决方案1】:

之所以出现问题,是因为在添加帖子时正在执行用于检查元信息的代码,这意味着大部分时间还没有添加元数据。

【讨论】:

  • 你解决了吗?如果是这样,最好在您的答案中为可能遇到类似问题的其他人提供最终的工作代码。
猜你喜欢
  • 2018-04-03
  • 2021-09-17
  • 1970-01-01
  • 2023-01-14
  • 1970-01-01
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
  • 2016-03-11
相关资源
最近更新 更多