WordWeb

« WordWeb im Netz

WordPress-Tipp: benutzerdefinierte header.php, sidebar.php oder footer.php

17. März 2010 . von Barbara Frolik . 17 Kommentare

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.

WordPress: benutzerdefinierte header.php, sidebar.php oder footer.php

Beispiel: benutzerdefinierte sidebar.php

Bleiben wir gleich beim Beispiel von vorhin. Nehmen wir an, dass wir eine benutzerdefinierte Sidebar speichern und in eine Vorlage einbauen möchten.

Schritt 1: sidebar.php unter neuem Namen abspeichern

Ö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.

Schritt 2: benutzerdefinierte Sidebar bearbeiten

Jetzt kannst du die neu gespeicherte Sidebar nach Belieben anpassen. Natürlich kannst du das auch erst später tun.

Schritt 3: benutzerdefinierte Sidebar in einer Vorlage aufrufen

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!

17 Kommentare

  • Michael Oeser sagt am 17. März 2010

    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.

  • Barbara sagt am 17. März 2010

    @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.

  • wo kann ich sagt am 18. März 2010

    “Also, dass man mit der Methode beispielsweise mit if-Abfragen und conditional Tags” – was meinst du damit?

  • Ellen sagt am 18. März 2010

    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

  • Barbara sagt am 19. März 2010

    @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 ;)

  • Anna Blume sagt am 8. Mai 2010

    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.

  • Daniela Wöhlert sagt am 26. August 2010

    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

  • Barbara Frolik sagt am 27. August 2010

    Liebe Daniela, danke für deinen Kommentar :) Es freut mich, dass dir dieser Artikel weitergeholfen hat. Manchmal liegts nur an kleinen Dingen ;)

  • Jens sagt am 15. Februar 2011

    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

  • Burghardt Sarah sagt am 3. März 2011

    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.

  • Barbara Frolik sagt am 4. März 2011

    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

  • Burghardt Sarah sagt am 4. März 2011

    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

  • Barbara Frolik sagt am 4. März 2011

    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;
    }

  • Burghardt Sarah sagt am 8. März 2011

    Vielen Lieben Dank, es hat geklappt…. :-)

  • thomas sagt am 15. Juni 2011

    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

  • Tomas sagt am 15. Juni 2011

    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

  • thomas57 sagt am 20. September 2011

    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

Kommentar schreiben