it-swarm.com.de

So erhalten Sie einen Meta-Wert in wp_attachment_metadata

Ich möchte wp_attachment_metadata auf meine eigene Art bekommen. Ich möchte die Größen (Thumbnail, Groß, Mittel, Klein) trennen. Der Metawert in der Datenbank sieht folgendermaßen aus:

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:"";}} 

Nun, ich stecke fest. Ich weiß nicht, wie ich dieses Array trennen soll. Jeder weiß, wie man dieses Array trennt, damit ich die Größe und die URL der Bilder erhalten kann.

1
odanicola

Es gibt zwei Methoden:

  1. get_post_meta()

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

    Gibt eine array() zurück:

    $width = $attachment_meta['width'];
    

    Diese true als dritter Parameter ist in diesem Fall besonders wichtig, da die abgefragten Metadaten ein serialized Array sind. Sie müssen es einzeln zurückgeben, oder Sie erhalten ein Array zurück, mit der Ausnahme, dass das erste Element in diesem Array das serialisierte Array ist. Unordentlich. Übergeben Sie einfach true und Sie erhalten Ihr unserialisiertes Array zurück.

  2. wp_get_attachment_metadata()

    Diese Funktion ist eine Art Wrapper für den obigen Aufruf get_post_meta().

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

In beiden Fällen ist $post der Anhang , nicht der übergeordnete Beitrag, zu dem der Anhang hochgeladen wird.

2
Chip Bennett