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
aindex.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 mnieindex.php
to?
Przeczytałem Hierarchię szablonów w Codex. Nie mieszaj mojego pytania z szablonami stron, rozumiem, em, alHamduLILLAH.
Komentarze
- Mam @rarst z tym: rarst.net/wordpress/front-page-logic . Może ci pomóc.
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
iindex.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 jestindex.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
- Ustawiono statyczną stronę główną , a
- A odwiedzający przechodzi do strony, którą „zdefiniowałeś jako„ listę postów ”(np.
http://example.com/blog/
)
- 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żytyhome.php
(jeślifront-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
):
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.
- home.php
- 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.
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.
Ź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.