WordPress – Bilder automatisch auf Startseite ohne benutzerdefinierte Felder

Wer mit WordPress ein Magazin erstellt, kennt das Problem. Um ein Bild auch auf der Startseite oder im Archiv anzeigen zu lassen, muss man dies meistens mit benutzerdefinierten Feldern machen. Gerade, wenn auch andere Schreiber mitarbeiten und vielleicht damit nicht so vertraut sind, ein schwieriges unterfangen. Meist bedeutet dies extra Arbeit. Muss dann das Bild noch richtig skaliert werden, reichen meist auch die Thumbnails nicht aus.

Daher möchte ich euch zeigen, wie ihr Bilder automatisch auf die Startseite bekommt ohne benutzerdefinierte Felder.

Mit Plugins

Es gibt einiges Plugins wie Get The Image oder The Attached Image. Mit beiden geht es sehr leicht und ist schnell eingebaut. Das Problem hier allerdings: Skaliert man die Bilder klein, so verpixelt das Bild.

Die Lösung: Timthumb!

Mit Timthumb

Timthumb alleine skaliert Bilder auf eine Größe und auf eine bestimmte Qualität, welche man einstellen kann. Ladet euch daher Timthumb herunter. Allerdings setzt es keine Bilder automatisch auf eine Startseite. Daher ist noch etwas Code erforderlich.  Dazu ist ein SQL Query erforderlich (vielen Dank an themeforest):


  get_results(

"SELECT guid FROM $wpdb->posts WHERE post_parent = '$post->ID' "
."AND post_type = 'attachment' ORDER BY `post_date` ASC LIMIT 0,1"

);

if ($first_image) {
    $image = $first_image[0]->guid;
			  }
?>

Dieses durchscannt die Datenbank nach einem Bild in diesem Artikel. Dies hat auch den Vorteil, dass man nicht unbedingt wieder ein Bild hochladen muss, damit es als Attachment deklariert wird.

Bei mir gab es nur meist das Problem, dass der absolute Pfad nicht erkannt wird, sondern nur der relative. Daher habe ich noch folgenden Zusatz eingebaut:


  get_results(

"SELECT guid FROM $wpdb->posts WHERE post_parent = '$post->ID' "
."AND post_type = 'attachment' ORDER BY `post_date` ASC LIMIT 0,1"

);

if ($first_image) {
    $image = $first_image[0]->guid;
    $image = str_replace("http://www.eurerblog.de/wp-content","/wp-content",$image);
    $image = str_replace("http://euerblog.de/wp-content","/wp-content",$image);
			  }
?>

Damit wird dann eure Domain entfernt. Dies ist aber nur nötig, falls es mit dem absoluten nicht funktioniert. Bei mir kam ein Fehler, dass ich nicht die nötigen Rechte besitze.

Jetzt muss nur noch das Bild ausgegeben werden:


<?php the_title(); ?>

Gebt also zunächst den Pfad zu Timthumb an. Ich habe es in meinem Theme im Ordner scripts. Mit “w” gebt ihr die Breite des Bildes an, mit “h” die Höhe, mit “zh” die Zoom Crop (0 oder 1) und mit “q” die Qualität des Bildes.

Baut ihr den Code so an, kann es passieren, wenn kein Bild im Beitrag eingefügt ist, dass nichts ausgegeben wird. Daher habe ich es so gemacht, wenn kein Bild gefunden wird, nichts ausgegebn wird. Mit else if könnte man dann noch ein Standardbild einstellen (muss aber noch hinzugefügt werden):



<?php the_title(); ?>

Das wars. Man könnte natürlich auch noch einbauen, dass zunächst das benutzerdefinierte Feld berücksichtigt wird und dann erst automatisch gesucht wird, aber das möchte ich hier erstmal sein lassen.

Vielleicht helfen dem ein oder anderem diese Codeschnipsel.

Der Autor

Website besuchen
Twitter Digg Delicious Stumbleupon Technorati Facebook

3 Responses to “WordPress – Bilder automatisch auf Startseite ohne benutzerdefinierte Felder”

Get Adobe Flash playerPlugin by wpburn.com wordpress themes