dynamicinternet Webdesign

Das Blog

Themen, Tutorials sowie Tipps & Tricks über Webdesign, (X)HTML und CSS, Programmierung, WordPress und was uns sonst noch bewegt.

RSS abonnieren

Bilder für statische WordPress Seiten

Jared fragt nach einer Lösung, um statischen Seiten in WordPress ein Bild zuzuordnen und verweist auf ein Beitrag, wo Kategorien ein Bild zugeordnet wird.
Ich habe meinen Tutorial- und WordPress Theme Seiten auch ein Bild und eine Seitenbeschreibung für die Übersicht zugeordnet, jedoch habe ich es mit benutzerdefinierten Feldern realisiert.

Die Vorgehensweise ist recht einfach. Wir legen nach dem Schreiben der Seite ein benutzerdefiniertes Feld mit dem Schlüssel aufmacherbild an und tragen als Wert den Dateinamen des gewünschten Bildes ein.

Dialog Benutzerdefinierte Felder

In meinem Fall habe ich die Bilder in ein extra Verzeichnis hochgeladen, so spar ich mir den Uploaddialog, ein Eintrag in der Datenbank und habe ausserdem jederzeit die Möglichkeit, ein Bild zu verändern, ohne in WordPress erneut den Uploaddialog zu starten. Möchte man den WordPress eigenen Uploaddialog benutzen, muß man bei dem Wert natürlich den vollen Pfad zum Bild hineinkopieren, zB. http://url.de/blog/wp-content/uploads/2007/11/deinbild.jpg.

Jetzt brauchen wir noch eine Funktion, die eben dieses Bild liefert. Die schreiben wir am besten in die functions.php, damit sie zentral zur Verfügung steht.

Hier die Variante mit einem extra Verzeichnis:


function getPageIcon($pageID){
	$picpath = get_bloginfo('url').'/deinverzeichnis/';
	$pageID = intval($pageID);
	$defaultIcon = 'default.jpg';
	$pageIcon = get_post_custom_values('aufmacherbild',$pageID);

	if (!$pageIcon [0] || empty($pageIcon [0])){
		$pageIcon [0] = $defaultIcon;
	}
	$myIcon = clean_url($picpath.$pageIcon [0]);
	return $myIcon;
}

An diese Funktion wird die Seiten-ID ($pageID) übergeben. $picpath ist der Pfad zum Bildverzeichnis. Das defaultIcon habe ich für den Fall angelegt, das kein Bild vorhanden ist. Dann holen wir mit get_post_custom_values(‘aufmacherbild’,$pageID) den Wert des benutzerdefinierten Felds “aufmacherbild”. Sollte der Wert leer sein, wird das defaulticon verwendet. Anschließend wird der komplette Pfad von der Funktion zurückgegeben. Wenn du den WordPress internen Uploaddialog für Bilder benutzt, sieht der Code so aus:


function getPageIcon($pageID){
	$pageID = intval($pageID);
	$defaultIcon = 'default.jpg';
	$pageIcon = get_post_custom_values('aufmacherbild',$pageID);

	if (!$pageIcon [0] || empty($pageIcon [0])){
		$pageIcon [0] = $defaultIcon;
	}
	$myIcon = clean_url($pageIcon [0]);
	return $myIcon;
}

Jetzt muß die Funktion nur noch im Template innerhalb des Loops aufgerufen werden:


<?php $pageID = get_the_ID(); ?>
<img src="<?php echo getPageIcon($pageID); ?>" alt="Aufmacherbild der Seite"/>

Diese Vorgehensweise kann man ebenfalls für eine Kurzbeschreibung einer Seite verwenden, da WordPress Pages ja keine optionale Kurzfassung (excerpt) haben. Der Code ist ähnlich:


function getPageTeaser($pageID){
	$pageID = intval($pageID);
	$seitenteaser = get_post_custom_values('seitenbeschreibung', $pageID);

	$myTeaser = wp_specialchars($seitenteaser[0]);
	return $myTeaser;
}

So habe ich zB. meine WordPress Tutorial Übersicht realisiert. Dazu habe ich aber ein eigenes Template angelegt.

4 Kommentare
  1. Sascha sagt:

    Ich hätte da mal ne ganz andere Frage. Bekommt man auch Bilder in die horizontale Navigation rein? Wenn ja wie?
    Ich suche nun seit Tagen danach und finde einfach nichts.
    Schönen Gruss

  2. Micha sagt:

    Sascha, ich weiß nicht, ob es dafür ein Plugin gibt. Mit der Funktion wp_list_pages geht es nicht. Eventuell könnte man mit jQuery oä. die Listenelemente anspringen und ein Bild reinimpfen.

  3. Philipp sagt:

    hi micha,

    ein jahr später =)

    ich suche seit stunden nach einer lösung für mein problem, welches mit deinem lösungsansatz behoben werden könnte.
    nun habe ich alles nach deinen vorgaben eingebaut, komme aber einfach nicht zum erfolg. es ist bei mir so, das jedesmal lediglich die fallbackgrafik angezeigt wird.

    vermutlich wird die pageId nicht korrekt übermittelt,, hmm ?! schonmal bei dir vorgekommen? hast du evtl.. einen lösungsansatz?

  4. Micha sagt:

    Philipp, du brauchst doch nur die post_thumbnail Funktion von WordPress nutzen, die geht auch für Pages. Nur gab es die damals nicht als dieser Artikel geschrieben wurde.

Einen Kommentar schreiben