WordPress 2.9: Beitrags Thumbnails abwärtskompatibel anzeigen

Eine bereits viel diskutierte Neuerung in der kommenden WordPress Version 2.9 ist die Möglichkeit Bilder bzw. Thumbnails automatisch anzeigen zu lassen. Das Problem mit solchen Neuerungen ist natürlich, dass nicht gleich jeder die neuste Version von WordPress verwendet und es speziell für Themeautoren wichtig ist, solche Funktionen so einzubauen, dass sie mit älteren Versionen kompatibel sind. Im Falle der neuen Postimage Funktion kann man das einfach wie folgt machen.
Vorbereitung des Themes
Das Theme muss zunächst darauf eingerichtet sein, dass es mit der neuen Bildfunktion umgehen kann. Dazu muss folgendes Codeschnipsel in die funktions.php kopiert werden.
Ist dies geschehen, sieht man in seinem Administrationsbereich unter “Beitrag schreiben” eine zusätzliche Box mit der Bezeichnung “Post Thumbnail” in der das vorher hochgeladene und als Thumbnail festgelegte Bild angezeigt wird.
Die Ausgabe des Bildes mit Rückwärtskompatibilität
Folgender Code muss an die Stelle des aktiven Themes kopiert werden, wo das Bild angezeigt werden soll. Das wird in der Regel die single.php sein. Der Code muss innerhalb des Loops sein.
Paste the following code, within the loop, where you want to post image to be displayed.
if ( (function_exists(‘has_post_image’)) && (has_post_image()) ) {
the_post_image(‘thumbnail’);
} else {
$postimageurl = get_post_meta($post->ID, ‘post-image’, true);
if ($postimageurl) {
echo ‘<img src="’.$postimageurl.‘" alt="" />’;
}
}
?>
Was der Code macht
- Zunächst mal stellt der Code sicher, dass die neue has_post_image() Funktion überhaupt existiert und das der Beitrag ein Bild hat.
- Trifft das zu, wird das Bild mit der neuen Funktion angezeigt.
- Trifft es nicht zu (also bei einer WordPress Version vor 2.9), wird der Wert des benutzerdefinierten Feldes “post-image” verwendet.
Dazu muss natürlich beim Schreiben des Beitrags ein entsprechendes Feld definiert und mit der Bild URL befüllt sein. Man könnte die Ausgabe jetzt auch so umbauen, dass gar kein Bild angezeigt wird, wenn die Funktion nicht existiert. Dadurch würde man sich das benutzerdefinierte Feld sparen, hätte aber eben auch kein Bild.
if ( (function_exists(‘has_post_image’)) && (has_post_image()) ) {
the_post_image(‘thumbnail’);
}
?>
Hallo Michael,
ich habe das gerade einmal ausprobiert. Bei mir in derTestumgebung mit der Beta 2 Version klappt das nicht so recht. Ich habe mein Theme wie oben beschrieben angepasst und der Bereich “Set Thumbnail” wird beim Artikel editieren auch angezeit.
Aber die Auswahl des Thumbnails funktioniert nicht. Irgendwie kann ich ein Image nicht selektieren, so das es beim Artikel unter “Set Thumbnail” angezeigt wird. Woran könnte das liegen?
Hm…kann ich nicht sagen. Ich teste natürlich im Moment auch nur rum. Bei mir ging es. Ich denke, das liegt eben daran, dass 2.9 noch beta ist. In der finalen Version werden solche Macken sicher ausgebügelt sein.
Sorry hatte den Code leicht falsch gelesen. post-image ist ja die abwärtskompatible Version *grmpfl* Aber danke für den Link. Steh halt auch vor dem Problem das ich die neue Funktion nutzen möchte, meine alten Thumbs aber weiter funktionieren sollen, ohne das ich das mit zwei identischen Funktionen bewerkstellige. Möchte eben mit dem kleinsten möglichen Aufwand meine bisherige Funktion auf die neue anpassen.
Wird eigentlich außer post-image noch was angelegt für das Thumbnail? ich mach das auch schon lang per costumfield und bin am überlegen ob ich dieses nicht einfach in das neue post-image umbenenne und meine eigene Funktion bis zum erscheinen von 2.9 einfach dementsprechend anpasse. So blieben meine alten Beiträge richtig ohne das ich was doppelt gemobbelt hab.
Was meinst Du mit “noch was angelegt”? Einen sehr guten Beitrag über alles, was man zur neuen Post Image Funktion wissen muss hat Justin Tadlock geschrieben
http://justintadlock.com/archives/2009/11/16/everything-you-need-to-know-about-wordpress-2-9s-post-image-feature