Logo PHP

URL von Post Thumbnail auslesen –auch mit NextGen

Seit WordPress 2.9 gibt es die Funktion Artikelbild, d.h. Post Thumbnails können nach entsprechender Codeanpassung des Themes als Miniaturbild eingebunden werden. Eine Beschreibung was zu tun ist findet ihr hier…

Nun gibt es Anwendungen in denen man die URL dieser post thumbnails auslesen möchte. Ich bin darüber gestolpert, als ich das passende Bild für meinen Facebook Gefällt mir Buttom implementierte.

Schnell war im Web ein Code Schnipsel gefunden welcher als Lösung angepriesen wurde.

$image_id = get_post_thumbnail_id();
$image_url = wp_get_attachment_image_src($image_id,'thumbnail');
$image_url = $image_url[0];
echo $image_url; 

Leider war diese Lösung und auch viele Sonstige in meiner Anwendung nicht brauchbar. Der Grund liegt darin, dass ich wie sehr viele Andere das leistungsfähige Plugin NextGen als Galerie einsetzte. Für die Artikelbilder greife ich dann auch auf die Galeriebilder aus NextGen zurück.

Das Problem besteht darin, dass die erste Abfrage

$image_id = get_post_thumbnail_id();

unterschiedlich formatierte ID’s liefert, je nachdem auf welche Bilder zugegriffen wird. Die ID von Bilder aus der WP Mediathek werden als reine Zahl ausgegeben, die Bilder aus der NextGen Galerie jedoch mit dem Zusatz ngg- in der Form:

ngg-456

Für diese ID funktioniert die Abfrage nicht, deshalb muss der Code dafür angepasst werden.
Hier der universelle Code Schnipsel welcher die URL für beide Fälle liefert:

<?php
$image_id = get_post_thumbnail_id();
// If the post thumbnail id has the form ngg-xyz then it is a NextGen image
if ( is_string($image_id) && substr($image_id, 0, 4) == 'ngg-') {
$ngg_image_id = substr($image_id, 4);
$image = nggdb::find_image($ngg_image_id);
if ($image) { // Safety check for null pointer.
$imageURL = $image->thumbURL;
echo $imageURL;
}
}
// if the post thumbnail is wp standard format
elseif (($image_id !='ngg-') AND ($image_id !='')) {
$imageURL = wp_get_attachment_image_src($image_id,'thumbnail');
$imageURL = $imageURL[0];
echo $imageURL;
}
?>

Mit diesem Code kann nun z.B. das Miniaturbild für Facebook richtig genutzt werden. Wie werde ich im nächsten Schritt beschreiben

Ein Gedanke zu „URL von Post Thumbnail auslesen –auch mit NextGen“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*