Ganz gewöhnliche WordPress-Themes bestehen aus einer Anzahl von Vorlagen (Templates), die alle auf den gleichen Header, die gleiche Sidebar und den gleichen Footer zugreifen. Bei komplexeren Seiten ist es aber oft sinnvoll, verschiedene Versionen zu verwenden. Wenn du dich durch diese Website klickst, wirst du zum Beispiel feststellen, dass die Sidebar nicht auf jeder Seite gleich aussieht. In diesem Artikel erfährst du, wie du verschiedene Varianten der header.php, sidebar.php und footer.php speichern und in deinen Vorlagen aufrufen kannst.
Bleiben wir gleich beim Beispiel von vorhin. Nehmen wir an, dass wir eine benutzerdefinierte Sidebar speichern und in eine Vorlage einbauen möchten.
Öffne die Datei «sidebar.php» und speichere sie unter einem neuen Namen ab. Der Dateiname kann zum Beispiel so aussehen: «sidebar-portfolio.php». Wichtig ist, dass der erste Teil des Dateinamens «sidebar-» lautet.
Jetzt kannst du die neu gespeicherte Sidebar nach Belieben anpassen. Natürlich kannst du das auch erst später tun.
Normalerweise ruft man die sidebar.php mit dem folgenden Code auf:
1 | <?php get_sidebar(); ?> |
Die benutzerdefinierte sidebar-portfolio.php kannst du wie folgt in die Vorlage einbauen:
1 | <?php get_sidebar('portfolio'); ?> |
So einfach ist es. Genau gleich funktioniert dieser Trick auch mit benutzerdefinierten Versionen der header.php und footer.php. Viel Spass beim Ausprobieren!
Wäre sicher noch hilfreich die Verwendungsmöglichkeiten genauer zu beschreiben.
Also, dass man mit der Methode beispielsweise mit if-Abfragen und conditional Tags (z.B. is_page() oder is_home() etc.) automatisch kontextabhängige Sidebars realisieren kann.
@Michael: Danke für den Input. Aber ich beschränke mich bewusst auf kurze und einfache Einführungen, denn die meisten meiner Besucher sind keine WordPress-Profis.
“Also, dass man mit der Methode beispielsweise mit if-Abfragen und conditional Tags” – was meinst du damit?
Oh ja, ich liebe es, dass WordPress so schön flexibel ist :-)
Das deine WordPress-Tipps auch für Nicht-Techies leicht zu verstehen und umzusetzen sind, finde ich übrigens klasse.
Viele Grüße
Ellen
@wo kann ich: Damit könntest du z.B. verschiedene Sidebars für verschiedene Kategorien festlegen. Oder auch für einzelne Seiten, wie Michael vorschlägt. Allerdings finde ich es in diesem Fall besser, separate Templates zu verwenden. Dann kann der Benutzer nämlich über die Admin-Oberfläche bestimmen, welche Variante er auf welcher Seite verwenden will. Normalerweise will man ja Inhalte auch später hinzufügen können, ohne immer gleich auch wieder die Vorlage anpassen zu müssen. Hier habe ich einen Foren-Beitrag zu diesem Thema entdeckt.
@Ellen: Ich überlege mir natürlich schon ziemlich genau, für welche Zielgruppe ich schreibe. Schliesslich gehört mein Blog zu meiner Geschäfts-Website. Und wenn ich hauptsächlich für jene schreiben würde, die sowieso schon alles wissen, wäre das pure Zeitverschwendung ;)
Wichtig ist, dass der erste Teil des Dateinamens «sidebar-» lautet
get_sidebar()
get_sidebar(‘portfolio’)
Diese 3 Zeilen sind für mich Gold wert, endlich habe ich das Prinzip verstanden. Vielen Dank.
Liebe Barbara,
ich verfolge Dein schönes Blog schon länger aber diesen Artikel hatte ich gar nicht gesehen… gerade habe ich sooo lange nach dieser Lösung gegoogelt… Merci!!!
Dabei hatte ich nur ein “_” statt ein “-” in der sidebar-blubb.php
;-)
Liebe Grüße
Daniela
Liebe Daniela, danke für deinen Kommentar :) Es freut mich, dass dir dieser Artikel weitergeholfen hat. Manchmal liegts nur an kleinen Dingen ;)
Vielen Dank für diesen Beitrag. Eine einfache Sache einfach zu erklären gelingt den meisten leider nicht. Hier hab ich endlich gefunden was ich lange suchte.
Gruß Jens
Hallo Barbara, leider war für mich (seit einer Woche Wordpresserin) diese Erklärung doch ein bisschen zu kurz. Ich versuche auf dieser Seite www. lorien-media.de für jede Seite noch ein individuelles Headerbild hinzuzufügen und bin dabei auf meine Grenzen gestoßen. Wenn ich das richtig verstanden habe muß ich für jede Seite ein individuelle header.php anlegen, ab da wird es leider düster. Ich weiß nicht wo ich innerhalb der header.php das neue BIld angeben kann oder ein anderes Stylesheet, auch weiß ich nicht wie ich den einzelnen Seiten dann die passenden header.php
zuweise.
Ich hoffe auf eine Antwort oder vielleicht einen Link zu einem ausführlicheren Tutorial.
Mit sonnigen Grüßen aus München
Sarah B.
Liebe Sarah, vielen Dank für deinen Kommentar. Ich habe den Quelltext deiner Website kurz angeschaut. Das Bild ist im CSS-File hinterlegt. Um jeder header.php ein eigenes Bild zuzuordnen, musst du erst für jedes Bild eine eigene Klasse erstellen und sie dann der entsprechenden header.php zuordnen. Falls du nicht weisst, was ich meine, empfehle ich dir, dich erst einmal mit den Grundlagen von HTML und CSS zu beschäftigen. Ohne diese wirst du generell nicht weit kommen, wenn du WordPress-Themes anpassen möchtest. Ich schaue später noch, ob ich ein paar gute Links für dich finde.
Sonnige Grüsse zurück :)
Barbara
Hallo Barbara,
vielen Dank schon mal für deine Antwort, ich kenne mich relativ gut mit CSS und HTML aus. Ich war auch schon soweit das ich jedem header eine CSS Klasse mit einem eigenen BIld zuweise. Allerdings basiert meine Seite auf einem Template und ich kann nur eine header.php finden. Ich nehme mal an das ich also auch für jede Seite eine eigene header.php erzeugen und hier dann die jeweilige CSS Klasse angeben muß. Mir ist aber nicht klar wo ich innerhalb der header.php die CSS-Klasse angeben kann und wie ich dann den einzelnen Seiten sagen kann welchen header sie vwerwenden sollen.
Vielleicht liegt hier auch ein Denkfehler vor, setzte mich wie gesagt erst seit einer Woche mit Wordpress auseinander.
Nebenbei gesagt find ich deinen Blog hier wirklich toll und ich werde auch in Zukunkt hier immer wieder vorbei schauen und diese Seite empfehlen.
ganz liebe Grüße und ein schönes Wochenende
Sarah
Hallo Sarah, ja, du musst für jede Seite eine eigene Vorlage mit einer eigenen header.php erstellen. Wie man benutzerdefinierte Vorlagen erstellt, kannst du z.B. hier nachlesen: WordPress tips and tricks – Custom Page Templates. Das Bild ist in der CSS-Klasse .header hinterlegt.
Wenn du z.B. für die Startseite ein eigenes Template verwenden willst, erstellst du zuerst eine Vorlage mit dem Namen template-startseite.php (oder ähnlich). Den benutzerdefinierten Header kannst du z.B. header-startseite.php nennen. Statt .header nennst du die neue Klasse z.B. .header-startseite. Im Stylesheet übernimmst du für diese Klasse alle Angaben aus der ursprünglichen .header-Klasse. Nur das Hintergrundbild ist anders. Z.B.
.header-startseite {
background: url(“i/header-startseite.png”) repeat scroll 0 0 transparent;
margin-bottom: 15px;
padding-top: 10px;
}
Vielen Lieben Dank, es hat geklappt…. :-)
liebe Barbara,
sitze grad in der Klemme mit meinen benutzerdefinierten Headern, in meinem Fall eine für russisch & englisch.
Alles prima soweit – je nach Kategorien kommen die entsprechenden Header (mit entsprechender Navigation in diesem Falle).
Habe jetzt aber das Problem der Abfrage dieser Header um dann entsprechenden Kategoriene ein Style zuzuordnen.
Ich bräuchte also anstatt get_hader(‘russich’) sowas wie ein
If is_header (‘russisch’) { dann mach irgendwas}….
Also ich weiss nicht wie ich den benutzerdefinierten Header ansprechen soll???
Für deine Hilfe wäre ich dir dankbar
liebe grüße thomas
Hallo Barbara, ich bin echt ein anfänder in sachen wordpress und wollte mal nachfragen ob du das etwas ausführlicher beschreiben könntest. ich habe z.B. jetzt eine sidebar-individuell.php angelegt.
- wo muss ich das nun einbauen ?
- und wie sprech ich diese nun an?
- und wie bekomme ich es hin das es nur in einer bestimmten Seite angezeigt wird?
- html/css kenntnisse sind vorhanden.
- wordpressversion (aktuell)
wäre echt supernett wenn du mir da etwas weiterhelfen könntest.
Lg Tomas
Danke für den Tipp, auch einen Dank an @Michael für den weitergehenden Tipp dazu.
Hat mir sehr geholfen.
Gruß aus dem Norden von
Thomas