Template Hierarchie: verwechselt mit index.php, front-page.php, home.php


36

Ich bin wirklich verwirrt mit index.php, home.phpund front-page.php. In vielen Fällen index.phpüberschreibe ich es mit, obwohl ich eine hatte front-page.php. Aber vor kurzem wurde ich darauf aufmerksam home.php.

  • Was ist der Unterschied zwischen home.phpund index.php?
  • Was ist die ideale Bedingung, um ein home.phpals ein zu verwenden index.php?
  • Was ist die ideale Voraussetzung, um eine zu verwenden front-page.php?
  • Wenn ich front-page.phpdann eine bestimmte Aufgabe benutze, die eine index.phpfür mich dann tut?

Ich habe die Vorlagenhierarchie im Codex gelesen . Bitte vermische meine Frage nicht mit Seitenvorlagen, ich verstehe sie, alHamduLILLAH.


1
Erhalten Sie @rarst mit diesem: rarst.net/wordpress/front-page-logic . Kann dir helfen.
Mayeenul Islam

Antworten:


34

Titelseitenlogik ist eine der verwirrendsten Funktionen in WordPress und ist außerordentlich schwer zu erklären und zusammenzufassen. Wie im Kommentar erwähnt, verbrannte ich unheilige Zeit, um mein Spickzettel für die Titelseitenlogik zusammenzustellen .

Aber da dies ein beliebter Thread ist, möchte ich versuchen, Ihre ganz spezifischen Fragen zu beantworten.

Was ist der Unterschied zwischen home.phpund index.php?

home.phpist eine Vorlage für den Beitragsindex (Archiv des einheimischen Beitragstyps, was in WP ein Sonderfall ist). WP wird versuchen, nach dem Index der Beiträge zu suchen, unabhängig davon, ob diese im Stammverzeichnis der Website oder auf der Seite mit dedizierten Beiträgen angezeigt werden.

index.phpist eine catch-all-Vorlage. Es ist die endgültige Auswahl in allen Zweigen der Vorlagenhierarchie und wird ausgewählt, wenn nichts anderes passt, sowohl für Archive als auch für einzelne Ansichten.

Nur der Beitragsindex kann verwendet werden home.php, aber alle anderen Kontexte können und werden verwendet index.php.

Was ist die ideale Voraussetzung, um ein home.phpals einindex.php

Mit können Sie home.phpden Beitragsindex anpassen.

Sie verwenden index.php, um die allgemeinste Vorlage in Ihrem Thema bereitzustellen, die für die Anzeige von allem geeignet ist.

Einige Designs sind leer index.phpund stellen sicher, dass sie spezifischere Vorlagen für alle möglichen Fälle haben, sodass sie niemals verwendet werden müssen.

Was ist die ideale Voraussetzung, um eine zu verwenden front-page.php?

front-page.php Wird für den Beitragsindex auf der Stamm- oder statischen Startseite verwendet, sofern aktiviert.

Es handelt sich um eine Vorlage mit hoher Priorität. Wenn also ein Thema vorhanden ist, können Sie keine beliebige Vorlage für die statische Startseite auswählen. Aus diesem Grund ist es fast nie in öffentlich veröffentlichten Themen enthalten (was richtig ist).

Am besten eignet es sich für private Projekte, da es einfacher zu konfigurieren ist als Seitenvorlagen.

Wenn ich front-page.phpdann eine bestimmte Aufgabe benutze, die eine index.phpfür mich dann tut?

index.phpist immer noch ein catch all template für alle anderen fälle.

Wenn Sie eine statische Startseite verwenden (für die front-page.phpgilt), wird Ihre Beitragsseite versuchen, home.phpund dann zu verwenden index.php.


28

Die front-page.phpDatei ist die Titelseitenvorlage der Website . Es wird immer auf der Startseite Ihrer Website verwendet, unabhängig davon, ob get_option( 'show_on_front' )auf pageoder festgelegt posts.

Die home.phpVorlagendatei ist die Indexvorlage für Blogposts . Es wird immer verwendet, um Ihren Blogpost-Index anzuzeigen, unabhängig davon, ob der Blogpost-Index auf der Startseite der Website oder auf einer anderen Seite angezeigt wird.

In dem Fall , dass beide front-page.phpund home.hppexistieren, und das get_option( 'show_on_front' )ist auf posts(dh die Website Titelseite zeigt den Blog - Beiträge Index), der front-page.phpwird Datei Vorrang vor der nehmen home.phpDatei.

Die index.phpDatei ist die Standard-Fallback-Vorlage für alle Kontexte in der Vorlagenhierarchie . Es wird immer nur verwendet, wenn für den aktuellen Kontext keine spezifischere Vorlagendatei vorhanden ist.

Die Vorlagenhierarchie für die Website-Startseite lautet:

  • front-page.php
  • If 'page' == get_option( 'show_on_front' ): Seitenhierarchie
  • If 'posts' == get_option( 'show_on_front' ): Hierarchie der Blogeinträge

Die Vorlagenhierarchie für den Blogpost-Index lautet:

  • home.php
  • index.php

Die Vorlagenhierarchie für Seiten lautet:

  • Benutzerdefinierte Seitenvorlage
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php

Also, wenn ich das richtig mache, ist es nicht möglich, my-template-1Vorlage zu verwenden, wenn die Startseite auf die neuesten Beiträge eingestellt ist und my-template-2wenn die Vorderseite auf eine statische Seite eingestellt ist (ohne Codierung)?
Jack Johansson

18

All dies ergibt sich aus einer gründlichen Lektüre der Vorlagenhierarchie .

home.php wird verwendet, wenn:

  • Auf der Startseite Ihrer Website wird eine Liste mit Beiträgen angezeigt
  • Und das Thema hat eine home.phpDatei

Wenn die letzte Bedingung nicht erfüllt ist, dh wenn sich keine home.phpDatei im Design befindet, index.phpwird geladen.

front-page.php wird verwendet wenn:

Wenn die letzte Bedingung nicht erfüllt ist, dh wenn sich keine front-page.phpDatei im Design befindet, index.phpwird geladen.

Zusammenfassend

Wenn Sie Ihre Liste der Beiträge anpassen möchten, verwenden Sie home.php.
Wenn Sie Ihre statische Homepage anpassen möchten, verwenden Sie front-page.php.


2
home.phpwird für den Blogpost-Index verwendet, unabhängig vom Standort. Wenn die Startseite so eingestellt ist, dass der Index der Blog-Beiträge angezeigt home.phpwird, wird verwendet (falls front-page.phpnicht vorhanden).
Chip Bennett

10

Zusamenfassend:

  • index.php ist nur eine Fallback-Vorlage, falls keine passende Vorlage gefunden wurde
  • home.php wird für den Blog verwendet (eine Auflistung der letzten Beiträge)
  • front-page.php wird für die Landingpage verwendet

Die universelle index.phpVorlage

Die index.phpVorlagendatei ist eine Fallback-Vorlage. Es wird als letzter Ausweg verwendet, wenn keine geeignetere Vorlage verfügbar ist. Wenn Sie zum Beispiel, haben nicht ein , front-page.phpnoch ein home.phpdann index.phpverwendet. Dies gilt auch für fehlende archive.phpoder single.phpso weiter.

In Bezug auf front-page.phpVShome.php

Nun ist die Differenz zwischen front-page.phpund home.phpVorlagen ist , dass der front-page.phpverwendet wird, wie der Name, als Haupt Front-Seite der Website schon sagt, während home.phpbeabsichtigt ist , die Heimat der seine Blog - Seite.

Welche Vorlage wird für die Zielseite meiner Website verwendet?

Die front-page.phpVorlage, falls vorhanden, wird für die Hauptseite der Site verwendet (z http://www.example.com/. B. ). Wenn nicht vorhanden, home.phpwird stattdessen verwendet. Wenn sowohl die front-page.phpals auch die home.phpVorlagendatei fehlen, wird die index.phpFallback-Vorlage verwendet.

Welche Vorlage wird für meine Blog-Seite verwendet?

Mit WordPress können Sie eine "Blog" -Seite (auf der die letzten Beiträge aufgelistet werden) auf einer anderen Seite als der Zielseite (z http://www.example.com/blog/. B. ) haben. Wenn dies auf Ihrer Website der Fall ist, wird auf der Blog-Seite immer die home.phpVorlage verwendet. Ist home.phpdies nicht der index.phpFall, wird die Fallback-Vorlage verwendet.

Wie konfiguriere ich die Landing-Page und Blog-Page?

Um zu konfigurieren, welche Inhalte auf Ihrer Startseite angezeigt werden sollen , gehen Sie zu WordPress Admin . Unter Extras> Lesen können Sie die " Startseite " so konfigurieren , dass eine statische Seite oder Ihre neuesten Beiträge angezeigt werden .

Wenn Sie eine statische Seite auf der Startseite anzeigen möchten, können Sie auch festlegen, welche Seite als Platzhalter für die Blog-Seite (die die home.phpVorlage verwendet) verwendet werden soll:

Bildbeschreibung hier eingeben


3

entnommen aus der Wordpress-Vorlagenhierarchie

Homepage-Anzeige

Standardmäßig stellt WordPress die Homepage Ihrer Site so ein, dass Ihre neuesten Blog-Beiträge angezeigt werden. Diese Seite wird als Blogpost-Index bezeichnet. Sie können Ihre Blog-Posts auch so einstellen, dass sie auf einer separaten statischen Seite angezeigt werden. Die Vorlagendatei home.php wird verwendet, um den Blogpost-Index zu rendern, unabhängig davon, ob er als Startseite oder auf einer separaten statischen Seite verwendet wird. Wenn home.php nicht existiert, verwendet WordPress index.php.

  1. home.php
  2. index.php

Hinweis: Wenn front-page.php existiert, wird die Vorlage home.php überschrieben.

Titelseitenanzeige

Die Vorlagendatei "front-page.php" wird verwendet, um die Startseite Ihrer Website zu rendern, unabhängig davon, ob auf der Startseite der Blogpost-Index (oben erwähnt) oder eine statische Seite angezeigt wird. Die Titelseitenvorlage hat Vorrang vor der Indexvorlage für Blog-Beiträge (home.php). Wenn die Datei front-page.php nicht existiert, verwendet WordPress entweder die Dateien home.php oder page.php, abhängig von den Einstellungen unter Einstellungen → Lesen. Wenn keine dieser Dateien vorhanden ist, wird die Datei index.php verwendet.

1. front-page.php - Wird sowohl für "Ihre letzten Beiträge" als auch für "eine statische Seite" verwendet, wie im Abschnitt "Anzeigen der Startseite" unter Einstellungen → Lesen festgelegt.

2. home.php - Wenn WordPress front-page.php nicht finden kann und "Ihre neuesten Beiträge" im Bereich "Front-Page-Displays" eingestellt ist, wird nach home.php gesucht. Zusätzlich sucht WordPress nach dieser Datei, wenn die Posts-Seite im Anzeigebereich der Startseite eingestellt ist.

3. page.php - Wenn im Anzeigebereich der Vorderseite die Option "Vorderseite" eingestellt ist.

4. index.php - Wenn "Ihre letzten Beiträge" im Anzeigebereich der Startseite eingestellt ist, aber home.php nicht existiert oder wenn die Startseite eingestellt ist, aber page.php nicht existiert.

Wie Sie sehen, gibt es viele Regeln, wie WordPress vorgeht. Anhand der obigen Tabelle können Sie am besten bestimmen, was in WordPress angezeigt wird.

Vorlagenhierarchiediagramm: Wordpress-Vorlagenhierarchie


2

Ich habe mich entschlossen zu testen, welche Vorlage für jede der folgenden Seiten verwendet wird, wenn die verschiedenen Optionen für die Anzeige der Startseite festgelegt sind.

  • example.net
  • example.net/home/
  • example.net/blog/

Die Ergebnisse sind ziemlich lang, können aber als Referenz oder Spickzettel verwendet werden.

Titelseite wird angezeigt

Quelle: Wie unterscheiden sich die Vorlagen front-page.php und home.php in WordPress?

Hinweis für den Herausgeber: Ich habe versucht, die Tabellen hier zu kopieren und einzufügen, aber anstelle von HTML ist ein Abschriftenformat erforderlich. Bitte konvertieren Sie zu Markdown, wenn Sie können.

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.