Wann ist is_home () vs is_front_page () zu verwenden?


66

Ich habe herausgefunden, dass es so is_front_pageaussieht, als ob es wahr ist, wenn ich die Homepage betrachte und dort einen einzelnen, nicht veränderbaren Beitrag zugewiesen habe.

Dies ist auch dann der Fall, wenn ich über Einstellungen> Lesen eine Seite als statische Startseite zugewiesen habe .

Warum sollte ich jemals verwenden wollen is_home()?

Antworten:


65

is_front_page()Gibt true zurück, wenn sich der Benutzer auf der Seite oder der Seite der Beiträge befindet, die auf der Startseite unter Einstellungen-> Lesen-> Ihre Startseite angezeigt werden

Wenn Sie also about usals Startseite festlegen, ist diese Bedingung nur dann erfüllt, wenn die Seite " Über uns" angezeigt wird.

is_home() Geben Sie true zurück, wenn Sie sich auf der Seite mit der Beitragsliste befinden. Dies ist normalerweise die Seite, auf der die letzten 10 Beiträge angezeigt werden.

Wenn die Einstellungen unter " Ihre Homepage wird angezeigt" standardmäßig beibehalten werden, wird die Homepage für beide is_front_page()und " wahr" zurückgegebenis_home()

Ein Beispiel für die Verwendung von is_home():

  • Sie haben Ihre Posts-Seite auf eine Seite namens " News" gesetzt .
  • Ein Benutzer navigiert dorthin und in der Kopfzeile möchten Sie zusätzliche Navigation anzeigen
  • Sie könnten dies verwenden is_home(), um dies zu tun.

18
Genau. Ich unterscheide Folgendes: is_front_page()Gibt true zurück, wenn die Startseite der Website angezeigt wird (unabhängig davon, ob der Index der Blog-Beiträge oder eine statische Seite angezeigt wird ), während is_home()true zurückgegeben wird, wenn der Index der Blog-Beiträge angezeigt wird (unabhängig davon, ob diese auf der Startseite oder einer statischen Seite angezeigt werden).
Chip Bennett

3

Ich habe das entdeckt is_home()und is_front_page()liefere nicht das, was für Multisites erwartet wird. Mein Workaround mit eingebauten PHP-Goodies:

if($_SERVER['REQUEST_URI'] == '/') {
    // you must be on the home page
}

Wie in den Kommentaren erwähnt, funktioniert dieser Ansatz nicht für WP-Instanzen, die in Unterverzeichnissen des Webstamms installiert sind. Verwendung nach eigenem Ermessen.


Bitte erläutern Sie, wie es nicht das liefert, was erwartet wird.
Christine Cooper

Wenn Sie auf einer Multi-Site-Hauptseite irgendeine Form von is_home()oder is_front_page()auf einer statischen oder Blog-Frontpage verwenden, geben beide Funktionen false zurück.
Dylan Pierce

1
Ich habe gerade beide Bedingungen in einer Umgebung mit mehreren Standorten getestet und beide haben beim Besuch der entsprechenden /Seiten den Wert true zurückgegeben .
Christine Cooper

Ich verwende die WordPress-VVV-Box mit dem Multisite-Plugin: github.com/Varying-Vagrant-Vagrants/vvv-multisite Vielleicht ist etwas falsch konfiguriert? Unabhängig davon, ob Sie nur eine Antwort für eine Problemumgehung hinterlassen, wenn jemand mit einer ähnlichen Situation einhergeht.
Dylan Pierce

Ihr Code ist fast perfekt, das einzige, was ist, wenn WP in einem Unterverzeichnis installiert ist, zum Beispiel / blog oder / wordpress. Dann wird das nutzlos sein.
Remzi Cavdar

1

Verwenden is_home()Sie diese Option, um zu überprüfen, ob der Benutzer Ihre Liste der Blog-Posts anzeigt (normalerweise werden 10 Posts pro Seite angezeigt). Wenn Sie eine home.phpDatei in Ihrem Design haben, wird diese angezeigt, wenn die is_home()Bedingung erfüllt ist.

Das Folgende kann möglicherweise auch Verwirrung stiften: Wenn is_front_page()und is_home()Bedingungen beide zutreffen, wird die Vorlage front-page.phpanstelle von verwendet home.php.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.