Comment extraire des données d'un tableau post meta sérialisé?

15

J'ai trouvé un script de décodeur XML vers WP qui stocke les données sous forme de tableau dans un méta-champ personnalisé. Quel est le meilleur moyen d'extraire les informations?

Par exemple, comment pourrais-je afficher le champ "Fabriqué dans" comme "CANADA"?

[_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";}} )

L'exemple de code ci-dessus a été généré via print_r(get_post_custom($post->ID)); .

J'apprécie vraiment toute idée, même petite. :)

    
posée torinagrippa 27.05.2011 - 16:21

1 réponse

23

Utilisez unserialize () pour le convertir en tableau.

$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];

Modifier : vous devez garder à l'esprit lors du stockage de métadonnées sérialisées de cette manière que vous limitez votre capacité à utiliser ces données dans les requêtes, si cela vous préoccupe. Par exemple, il est difficile d’écrire des requêtes du type "affichez toutes les pièces fabriquées au Canada", ou commandez les résultats par ID de moteur, car ces données sont cachées dans un tas d’autres données dans un seul champ.

    
réponse donnée Milo 27.05.2011 - 16:34

Lire d'autres questions sur les étiquettes