Pregunta:
Encontré un script decodificador de XML a WP que almacena los datos como una matriz en un metacampo personalizado. ¿Cuál es la mejor forma de extraer la información?
Por ejemplo, ¿cómo puedo mostrar el campo "Fabricado en" como "CANADÁ"?
[_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";}} )
El código de ejemplo anterior se produjo a través de print_r(get_post_custom($post->ID));
.
Realmente aprecio cualquier información, no importa cuán pequeña sea. 🙂
Respuesta:
Utilice unserialize () para convertirlo en una matriz.
$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];
Editar : pensamiento relacionado: algo a tener en cuenta al almacenar metadatos serializados de esta manera es que limita su capacidad para usar esos datos en consultas, si eso le preocupa. por ejemplo, no es tan fácil escribir consultas como "muéstreme todas las piezas fabricadas en Canadá" u ordenar los resultados por identificación del motor, ya que esos datos se guardan con un montón de otros datos en un campo.