WordPress & Webwork - perun.net



WordPress: bin ich auf der Startseite?

Vladimir am 04. 02. 2010 um 22:59 Uhr

Frag den WordPress-Experten Und wieder ein Artikel aus der Reihe Frag den WordPress-Experten. Der Nutzer hat bei einem kleinen Projekt WordPress als "klassisches" CMS eingesetzt und wollte wissen, wie er in den Template-Dateien abfragen kann, ob man sich auf der Startseite befindet.

Will man bei einer WordPress-Installation herausfinden, ob man sich auf der Startseite befindet, dann kommt folgender Conditional Tag zum Einsatz:

<?php if(is_home()) echo 'irgendetwas'; ?>

Allerdings muss hierbei erwähnen, dass is_home() lediglich Auskunft gibt ob man sich auf der Hauptseite des Blogs befindet. Will man jedoch wirklich nur die Startseite ansprechen und nicht die Folgeseiten der Hauptseite, dann kommt folgender Code zum Einsatz:

<?php if(is_home() and !is_paged()) echo 'irgendetwas'; ?>

Setzt man aber WordPress als "klassisches" CMS ein … also bei Projekten ohne Blogcharakter, dann wird meistens in "Einstellungen" ⇒ "Lesen" eine Seite (Page) als Startseite bestimmt. Hier greift aber die obere Abfrage nicht, weil man sich nicht mehr auf der Hauptseite sondern auf einer Page befindet. Folgender Code kommt hier zum Einsatz:

<?php if(is_front_page()) echo 'irgendetwas'; ?>

Will man jetzt beide Fälle abdecken, zum Beispiel weil man ein freies WordPress-Theme entwickelt, dann würde das Code-Fragment so ausschauen:

<?php if(is_home() and !is_paged() or is_front_page()) echo 'irgendetwas'; ?>

Diesen Artikel weiterempfehlen:

Premium WordPress Themes

Verwandte Artikel:

 — 


11 Kommentare

  1. 1.flöschen

    Kommentar vom 04. February 2010 um 23:37

    Danke für den Tipp. Daran habe ich heute auch etwas herumstudiert, besonders, weil nicht alle Funktionen aufgelistet sind im Codex…

  2. 2.mike

    Kommentar vom 05. February 2010 um 17:01

    'ne Frage zum Verständnis, matcht nicht front_page immer, egal, ob Kategorie oder Page?

  3. 3.Perun

    Kommentar vom 05. February 2010 um 17:42

    @mike,

    is_front_page() wirkt nicht, wenn als Startseite die Auflistung der Blog-Artikel (Standardeinstellung) gegeben ist.

  4. 4.Frank

    Kommentar vom 05. February 2010 um 18:58

    Zum Verständnis kann das Plugin Debug Objects sehr nützlich sein, dort wird einem gezeigt, welches dieser Condtional Tags aktiv ist.

  5. 5.Ralf

    Kommentar vom 05. February 2010 um 20:29

    Gehört nicht direkt zum Thema, es ist jedoch besser wenn man Bedingungen mit Klammern ergänzt.

    if ($a and !$b or $c) kann zu unerwünschten Ergebnissen führen. Denn die Operatoren (and, or, not, usw) haben eine bestimmte Reihenfolge in der sie abgearbeitet werden. Besser wäre also <?php if( ( is_home() and !is_paged() ) or ( is_front_page() ) ) echo 'irgendetwas'; ?>. Nebenbei wird so auch die Lesbarkeit erhöht.

  6. 6.Perun

    Kommentar vom 05. February 2010 um 22:18

    @Ralf,

    ich habe es gedacht es so zu schreiben, wie du es genannt hast, aber ich dachte dass dann von euch erfahrenen PHP-Hasen der Hinweis kommen könnte: "Warum so kompliziert, es geht auch kürzer"? :mrgreen:

  7. 7.Stefan

    Kommentar vom 23. February 2010 um 16:09

    Vielen Dank für diesen Tipp!
    Dieser hat mich letzten Endes auf die richtige Spur gebracht. Ich war schon am Verzweifeln! :-)

    Viele Grüße!

    Stefan

  8. 8.WordPress: Inhalte auf der Startseite steuern | Peruns Weblog

    Pingback vom 10. April 2010 um 16:38

    [...] Bei der Abfrage der Startseite bitte auch folgenden Artikel beachten: WordPress: bin ich auf der Startseite? [...]

  9. 9.Claas (talkz.de)

    Kommentar vom 24. February 2011 um 15:00

    Danke! Das hat mir den Tag gerettet!!! :)

  10. 10.WordPress: Bilder-Slideshow pro Seite oder Kategorie | WordPress & Webwork

    Pingback vom 11. July 2011 um 14:12

    [...] Unterseiten befinden. Den Conditional Tag is_front_page() habe ich bereits im Artikel WordPress: bin ich auf der Startseite? bereits vorgestellt und habe dort den Unterschied zwischen ihm und is_home() [...]

  11. 11.WordPress: die Artikelseite ansprechen | WordPress & Webwork

    Pingback vom 13. August 2011 um 17:51

    [...] WordPress: bin ich auf der Startseite? – is_home() vs. is_front_page() [...]

Hinweis:
Kostenloser WordPress-Newsletter
Wöchentl. Newsletter zu WordPress und verwandten Themen

Tut mir Leid, aber die Kommentar-Funktion ist momentan deaktiviert.



Weblog der perun.net webwork gmbh mit Artikeln zum Thema WordPress, Webwork, und Internet.