web-dev-qa-db-fra.com

Comment obtenir la méta-valeur dans wp_attachment_metadata

Je veux obtenir wp_attachment_metadata à ma manière. Je veux séparer les tailles (Thumbnail, Large, Medium, Small). La méta-valeur sur la base de données ressemble à ceci:

a:5:{s:5:"width";i:660;s:6:"height";i:320;s:4:"file";s:39:"2013/07/debut 
-busana-muslim-new-yor.jpg";s:5:"sizes";a:2:{s:9:"thumbnail";a:4:{s:4:"f 
ile";s:39:"debut-busana-muslim-new-yor-150x150.jpg";s:5:"width";i:150;s: 
6:"height";i:150;s:9:"mime-type";s:10:"image/jpeg";}s:6:"medium";a:4:{s: 
4:"file";s:39:"debut-busana-muslim-new-yor-300x145.jpg";s:5:"width";i:30 
0;s:6:"height";i:145;s:9:"mime-type";s:10:"image/jpeg";}}s:10:"image_met 
a";a:10:{s:8:"aperture";i:0;s:6:"credit";s:0:"";s:6:"camera";s:0:"";s:7: 
"caption";s:0:"";s:17:"created_timestamp";i:0;s:9:"copyright";s:0:"";s:1 
2:"focal_length";i:0;s:3:"iso";i:0;s:13:"shutter_speed";i:0;s:5:"title"; 
s:0:"";}} 

Eh bien, je suis coincé. Je ne sais pas comment séparer ce tableau. Tout le monde sait comment séparer ce tableau afin que je puisse obtenir les tailles et l'URL des images.

1
odanicola

Il y a deux méthodes:

  1. get_post_meta()

    $attachment_meta = get_post_meta( $post->ID, '_wp_attachment_meta', true );
    

    Renverra une array():

    $width = $attachment_meta['width'];
    

    Ce true en tant que troisième paramètre est particulièrement important dans ce cas, car les métadonnées interrogées sont un sérialisé tableau. Vous devez le retourner en tant que single ou vous obtiendrez un tableau, sauf que le premier élément de ce tableau sera le tableau sérialisé. Désordonné. Il suffit de passer true et votre tableau non sérialisé sera renvoyé.

  2. wp_get_attachment_metadata()

    Cette fonction est en quelque sorte un wrapper pour l'appel get_post_meta() ci-dessus.

    $attachment_meta = wp_get_attachment_metadata( $post->ID );
    

Dans les deux cas, $post est la pièce jointe , et non la publication parente dans laquelle la pièce jointe est téléchargée.

2
Chip Bennett