如何从后Meta序列化数组中提取数据?

时间:2011-05-27 作者:m-torin

我找到了一个XML-to-WP解码器脚本,它将数据作为数组存储在自定义元字段中。提取信息的最佳方法是什么?

例如,如何将“制造地”字段显示为“加拿大”?

[_ttn_i_details] => Array ( [0] => a:5:{s:9:"engine_id";a:1:{i:0;s:9:"300000225";}s:15:"transmission_id";a:1:{i:0;s:6:"257691";}s:5:"plant";a:1:{i:0;s:23:"Oshawa, Ontario, Canada";}s:15:"Manufactured in";a:1:{i:0;s:6:"CANADA";}s:22:"Production Seq. Number";a:1:{i:0;s:6:"151411";}} )

上面的示例代码是通过print_r(get_post_custom($post->ID));.

我真的很感激任何见解,无论多么渺小。:)

2 个回复
最合适的回答,由SO网友:Milo 整理而成

使用unserialize() 将其转换为数组。

$mydata = \'a:5:{s:9:"engine_id";a:1:{i:0;s:9:"300000225";}s:15:"transmission_id";a:1:{i:0;s:6:"257691";}s:5:"plant";a:1:{i:0;s:23:"Oshawa, Ontario, Canada";}s:15:"Manufactured in";a:1:{i:0;s:6:"CANADA";}s:22:"Production Seq. Number";a:1:{i:0;s:6:"151411";}}\';
$mydata = unserialize($mydata);
echo $mydata[\'Manufactured in\'][0];
Edit- 相关思想——在存储像这样序列化的元数据时要记住的一点是,如果您担心的话,您会限制在查询中使用该数据的能力。例如,编写诸如“显示加拿大制造的所有零件”或按引擎id订购结果之类的查询并不容易,因为这些数据与一个字段中的一组其他数据一起隐藏。

SO网友:Dhara Talaviya

您可以使用此WordPress codex将其转换为数组。

可能\\u unserialize($数据);

https://developer.wordpress.org/reference/functions/maybe_unserialize/

结束

相关推荐

当我试图停用任何插件时,它会给出错误“WARNING:CALL_USER_FUNC_ARRAY()[Function.Call-User-Func-ARRAY]”

当我尝试取消激活任何插件时,它会出错。如何解决这个问题?插件被取消激活,但单击按钮“Deactivate”时,我收到此错误。警告:call\\u user\\u func\\u array()[函数.call user func array]:第一个参数应该是有效的回调,“youtuber\\u uninstall”在/home/username/public\\u html/wp includes/plugin中给出。php在线395**