Jestem naprawdę zdezorientowany z index.php, home.php i front-page.php. W wielu przypadkach pomimo index.php, Nadpisuję go front-page.php. Niedawno dowiedziałem się o home.php.

  • Co „Jaka jest różnica między home.php a index.php?
  • Jaki jest idealny warunek użycia elementu home.php niż index.php?
  • Jaki jest idealny warunek użycia front-page.php?
  • Kiedy używam front-page.php, to jakie konkretne zadanie wykonuje dla mnie index.php to?

Przeczytałem Hierarchię szablonów w Codex. Nie mieszaj mojego pytania z szablonami stron, rozumiem, em, alHamduLILLAH.

Komentarze

Odpowiedź

Logika strony głównej to jedna z najbardziej zagmatwanych funkcji w WordPress i wyjątkowo trudne do wyjaśnienia i podsumowania. Jak wspomniałem w komentarzu, spędziłem straszną ilość czasu, aby złożyć do tego moją ściągawkę ze strony głównej .

Ale od tego czasu to popularny wątek, spróbuję odpowiedzieć na te bardzo konkretne pytania, które miałeś.

Jaka jest różnica między home.php i index.php?

home.php to szablon indeksu postów (archiwum rodzimego typu postów, co jest szczególnym przypadkiem w WP). WP spróbuje wyszukać indeks postów, niezależnie od tego, czy są one wyświetlane w katalogu głównym witryny, czy na dedykowanej stronie z postami.

index.php to szablon typu catch-all. Jest to ostateczny wybór we wszystkich gałęziach hierarchii szablonów i zostanie wybrany, gdy nic innego nie pasuje, zarówno dla archiwów, jak i pojedynczych widoków.

Tylko indeks postów może używać home.php, ale wszystkie inne konteksty mogą i będą używać index.php.

Jaki jest idealny warunek użycia home.php niż index.php

home.php służy do dostosowywania indeksu postów.

Używasz index.php, aby zapewnić najbardziej ogólny szablon w swoim motywie, odpowiedni do wyświetlania czegokolwiek.

Niektóre motywy mają puste index.php i upewnij się, że mają bardziej szczegółowe szablony dla wszystkich możliwych przypadków, więc nigdy nie trzeba ich używać.

Co „to idealny warunek, aby użyć front-page.php?

front-page.php jest używany do indeksowania postów na głównej lub statycznej stronie głównej, jeśli jest włączony.

Jest to szablon o wysokim priorytecie, więc jeśli motyw go posiada, nie możesz wybrać dowolnego szablonu dla statycznej strony głównej. Z tego powodu prawie nigdy nie jest dołączany do publicznie udostępnianych motywów (co jest poprawne).

Najlepiej używać go w projektach prywatnych, ponieważ jest łatwiejszy do skonfigurowania niż szablon strony.

Kiedy używam front-page.php, to jakie konkretne zadanie jest index.php robi to za mnie?

index.php jest nadal szablonem przechwytującym wszystkie we wszystkich innych przypadkach.

Jeśli używasz statycznej strony głównej (do której ma zastosowanie front-page.php), Twoja strona postów spróbuje użyć home.php, a następnie index.php.

Odpowiedź

front-page.php to szablon witryny . Będzie zawsze używany na pierwszej stronie Twojej witryny, niezależnie od tego, czy get_option( "show_on_front" ) jest ustawiony na page czy posts.

home.php plik szablonu to indeks postów na blogu szablon. Będzie zawsze używany do wyświetlania indeksu postów na blogu, niezależnie od tego, czy indeks postów na blogu jest wyświetlany na stronie głównej witryny, czy na innej stronie.

W przypadku, gdy oba front-page.php i home.hpp istnieją, a get_option( "show_on_front" ) jest ustawiony na posts (tj. strona główna witryny wyświetla indeks postów na blogu), plik front-page.php będzie miał pierwszeństwo przed plikiem home.php.

Plik index.php to domyślny szablon zastępczy dla wszystkich kontekstów w Hierarchii szablonów . Jest używany tylko wtedy, gdy nie istnieje bardziej szczegółowy plik szablonu dla bieżącego kontekstu.

Hierarchia szablonów dla strony głównej to:

  • front-page.php
  • Jeśli "page" == get_option( "show_on_front" ): hierarchia stron
  • If "posts" == get_option( "show_on_front" ): hierarchia indeksów wpisów na blogu

Hierarchia szablonów dla indeks postów na blogu to:

  • home.php
  • index.php

Hierarchia szablonów dla stron to:

  • Niestandardowy szablon strony
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php

Komentarze

  • Tak więc, jeśli ' robię to dobrze, to ' sn nie można używać szablonu my-template-1, gdy strona główna jest ustawiona na najnowsze posty i używać my-template-2, gdy strona przednia jest ustawiona na stronę statyczną ( bez kodowania)?

Odpowiedź

Wszystko to wynika z dokładnego przeczytania Hierarchia szablonów .

home.php jest używany, jeśli:

  • Twoja witryna strona główna jest ustawiona na wyświetlanie listy postów, lub
  • A motyw ma plik home.php

Jeśli ostatni warunek nie jest spełniony – tj. nie ma home.php w motywie – wtedy index.php zostanie załadowany.

front-page.php zostanie użyty, jeśli :

  • A static front p ustawiono wiek , a
  • użytkownik przechodzi do strony, którą „zdefiniowałeś jako„ statyczną stronę główną ”(tj. http://example.com/) , oraz
  • Motyw zawiera plik front-page.php

Jeśli ostatni warunek nie jest spełniony – tzn. nie ma pliku front-page.php w motywie – wtedy index.php zostanie załadowany.

Podsumowanie

Jeśli chcesz dostosować listę postów, użyj home.php.
Jeśli chcesz dostosować statyczną stronę główną, użyj front-page.php.

Komentarze

  • home.php będą używane w indeksie postów na blogu, niezależnie od Lokalizacja. Jeśli na stronie głównej ustawiono wyświetlanie indeksu postów na blogu, zostanie użyty home.php (jeśli front-page.php nie istnieje).

Odpowiedź

W skrócie:

  • index.php jest szablonem zastępczym, na wypadek gdyby nie znaleziono odpowiedniego szablonu
  • home.php jest używany dla bloga (lista ostatnich postów)
  • front-page.php jest używany jako strona docelowa

uniwersalny szablon index.php

index.php plik szablonu jest szablonem zastępczym. Jest używany w ostateczności, gdy nie jest dostępny inny bardziej odpowiedni szablon. Na przykład, jeśli nie masz elementu front-page.php ani home.php, to index.php być używane. Dotyczy to również brakujących archive.php lub single.php i tak dalej.

Jeśli chodzi o front-page.php VS home.php

Teraz różnica między front-page.php i polegają na tym, że front-page.php jest używany, jak sama nazwa wskazuje, jako główna strona główna witryny, podczas gdy home.php ma być domem sekcji Blog .

Jaki szablon będzie użyty na stronie docelowej mojej witryny?

Szablon front-page.php, jeśli jest obecny, zostanie użyty jako główna strona główna witryny (np. http://www.example.com/). Jeśli nie jest obecny, zamiast tego zostanie użyty home.php. Jeśli zarówno front-page.php, jak i brakuje plików szablonów, zostanie użyty szablon zastępczy index.php.

Jaki szablon zostanie użyty dla mojej strony bloga?

WordPress umożliwia posiadanie strony „Blog” (która będzie zawierała listę ostatnich postów) na innej stronie niż strona docelowa (np. http://www.example.com/blog/).Jeśli więc tak jest w Twojej witrynie, strona Blog zawsze będzie używać szablonu home.php. Jeśli home.php nie istnieje, zostanie użyty szablon zastępczy index.php.

Jak skonfigurować miejsce docelowe- i blogu?

Aby skonfigurować zawartość wyświetlaną na stronie głównej, przejdź do WordPress Admin , w Narzędzia> Czytając , możesz skonfigurować „ Wyświetlacze strony głównej ”, aby pokaż stronę statyczną lub najnowsze posty.

W przypadku, gdy zdecydujesz się wyświetlić stronę statyczną na pierwszej stronie, możesz również ustawić, która strona ma być używana jako element zastępczy dla bloga strona (która użyje szablonu home.php):

tutaj wprowadź opis obrazu

Odpowiedź

pobrane z Hierarchia szablonów WordPress

Wyświetlanie strony głównej

Domyślnie WordPress ustawia stronę główną Twojej witryny na wyświetlanie najnowszych postów na blogu. Ta strona jest nazywana indeksem postów na blogu. Możesz także ustawić wyświetlanie swoich postów na blogu na oddzielnej stronie statycznej. Plik szablonu home.php jest używany do renderowania indeksu postów na blogu, niezależnie od tego, czy jest używany jako strona główna, czy na oddzielnej stronie statycznej. Jeśli home.php nie istnieje, WordPress użyje index.php.

  1. home.php
  2. index.php

Uwaga: Jeśli istnieje front-page.php, zastąpi on szablon home.php.

Wyświetlanie na pierwszej stronie

Plik szablonu front-page.php jest używany do renderowania strony głównej Twojej witryny, niezależnie od tego, czy strona główna wyświetla indeks postów na blogu (wspomniany powyżej), czy stronę statyczną. Szablon strony głównej ma pierwszeństwo przed szablonem indeksu postów na blogu (home.php). Jeśli plik front-page.php nie istnieje, WordPress użyje plików home.php lub page.php w zależności od ustawień w Ustawienia → Czytanie. Jeśli żaden z tych plików nie istnieje, użyje pliku index.php.

1. front-page.php – Używany zarówno dla „najnowszych postów”, jak i „strony statycznej”, jak ustawiono na stronie głównej, w sekcji Ustawienia → Czytanie.

2. home.php – Jeśli WordPress nie może znaleźć front-page.php, a w sekcji wyświetlania strony głównej jest ustawiona opcja „Twoje najnowsze posty”, będzie szukał home.php. Ponadto WordPress będzie szukał tego pliku, gdy strona z postami jest ustawiona w sekcji wyświetlania strony głównej.

3. page.php – Gdy „strona główna” jest ustawiona w sekcji wyświetlania strony głównej.

4. index.php – Kiedy „Twoje najnowsze posty” jest ustawione w sekcji wyświetlanych na stronie głównej, ale home.php nie istnieje lub gdy strona główna jest ustawiona, ale page.php nie istnieje .

Jak widać, istnieje wiele zasad określających ścieżkę, którą podąża WordPress. Skorzystanie z powyższego wykresu jest najlepszym sposobem określenia, co będzie wyświetlane w WordPressie.

Wykres hierarchii szablonów: Hierarchia szablonów WordPress

Odpowiedź

Postanowiłem przetestować który szablon jest używany dla każdej z następnych stron, gdy są ustawione różne opcje wyświetlania strony głównej.

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

Wyniki są dość długie, ale można ich użyć jako odniesienia lub ściągawki.

Wyświetlacze na pierwszej stronie

Źródło: W jaki sposób Szablony front-page.php i home.php różnią się w WordPressie?

Uwaga dla redaktora: Próbowałem skopiować i wkleić tabele tutaj, ale zamiast HTML wymagany jest format markdown. Jeśli możesz, zamień je na markdown.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *