Webworking

Bildattribute von in WordPress gespeicherten Bildern abrufen

In den normalen WordPress-Funktionen und darauf aufbauenden Themes, die dazu dienen Metadaten von Attachments (wie Bildern) zu ermitteln, werden oft nur wenige Daten bereitgestellt.  Will man bei einem Bild mehr Daten anzeigen, muss man daher etwas tiefer schürfen.

Hierzu hab ich mir folgende Funktion gebastelt:

function get_image_attributs($id=0) {
    if ($id==0) return;

    $meta = get_post_meta( $id );
    if (!isset($meta)) {
        return;
    }
    $result = array();
    $result['alt'] = trim(strip_tags($meta['_wp_attachment_image_alt'][0]));

    if (isset($meta['_wp_attachment_metadata']) && is_array($meta['_wp_attachment_metadata'])) {    
        $data =  unserialize($meta['_wp_attachment_metadata'][0]);
        if (isset($data['image_meta']) && is_array($data['image_meta']) && isset($data['image_meta']['copyright'])) {
        $result['copyright'] = trim(strip_tags($data['image_meta']['copyright']));
        }
    }
    $attachment = get_post($id);

    if (isset($attachment) ) {
        $result['beschriftung'] = trim(strip_tags( $attachment->post_excerpt )); 
        $result['beschreibung'] = trim(strip_tags( $attachment->post_content )); 
        $result['title'] = trim(strip_tags( $attachment->post_title )); 
    }

    $displayinfo = $result['beschriftung'];
    if (empty($displayinfo)) $displayinfo = $result['beschreibung'];
    if (empty($displayinfo) && !empty($result['copyright'])) $displayinfo = __('Bild: ','mytheme').$result['copyright'];
    if (empty($displayinfo)) $displayinfo = $result['alt'];
    $result['credits'] = $displayinfo;
    return $result;

}

Diese Funktion erhält als Übergabewert die ID des Attachments (Bild). In dem zurück gelieferten Array sind dann einige der Attribute enthalten, die man mglw. braucht: Der Alttag, der uns auch so schon geliefert wurde, aber auch die Beschriftung, die Beschreibung, der Titel des Bildes und die Copyright-Information die aus den Bilddaten (EXIF) selbst stammen.

Ausserdem enthält das Array ein generiertes String „credits“, welches sich aus den Inhalten von der Beschriftung, der Beschreibung oder der Copyright-Info  ergibt, je nachdem ob diese Strings leer sind.

 

 

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen