Jestem naprawdę mylić z index.php
, home.php
i front-page.php
. W wielu przypadkach, mimo że miałem index.php
, nadpisuję je front-page.php
. Ale ostatnio dowiedziałem się o tym home.php
.
- Jaka jest różnica między
home.php
iindex.php
? - Jaki jest idealny warunek do użycia
home.php
niżindex.php
? - Jaki jest idealny warunek korzystania
front-page.php
? - Kiedy używam
front-page.php
wtedy, jakie konkretne zadanieindex.php
dla mnie wtedy robi?
Przeczytałem Hierarchię szablonów w Codex. Proszę nie mieszać mojego pytania z szablonami strony, rozumiem je, alHamduLILLAH.
template-hierarchy
Mayeenul Islam
źródło
źródło
Odpowiedzi:
Logika na pierwszej stronie jest jedną z najbardziej mylących funkcji WordPressa i jest wyjątkowo trudna do wyjaśnienia i podsumowania. Jak wspomniałem w komentarzu, z tyłu spieszyłem nieświętą ilość czasu, aby zebrać za to moją zdradę logiki na pierwszej stronie .
Ale ponieważ jest to popularny wątek, pozwól mi odpowiedzieć na te bardzo szczegółowe pytania, które miałeś.
home.php
jest szablonem indeksu postów (archiwum rodzimego typu postów, co jest szczególnym przypadkiem w WP). WP podejmie próbę wyszukania indeksu postów, niezależnie od tego, czy są one wyświetlane w katalogu głównym witryny, czy na stronie poświęconej postom.index.php
to catch-all szablon. 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.Można używać tylko indeksu postów
home.php
, ale wszystkie inne konteksty mogą i będą z niego korzystaćindex.php
.Służy
home.php
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 wybierają opcję pustą
index.php
i zapewniają bardziej szczegółowe szablony dla wszystkich możliwych przypadków, więc nigdy nie trzeba jej używać.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 zawiera, nie można wybrać dowolnego szablonu dla statycznej strony głównej. Z tego powodu prawie nigdy nie jest uwzględniony w publicznie wydanych motywach (co jest poprawne).
Najlepiej nadaje się do tego w prywatnych projektach, ponieważ jest łatwiejszy do skonfigurowania niż szablon strony.
index.php
Jest jeszcze jeden haczyk wszystko szablon dla wszystkich pozostałych przypadkach.Jeśli używasz statycznej strony początkowej (do której się
front-page.php
to odnosi), wtedy strona postów spróbuje użyć,home.php
a następnieindex.php
.źródło
front-page.php
Plik jest strona przednia strona szablon. Będzie zawsze używany na stronie głównej witryny, niezależnie od tego, czyget_option( 'show_on_front' )
jest ustawiony napage
czyposts
.Plik
home.php
szablonu to szablon indeksu postów na blogu . 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
ihome.hpp
istnieje, aget_option( 'show_on_front' )
jest ustawiony naposts
(czyli, strona strona przednie wyświetla indeks blogach), tofront-page.php
plik będzie mieć pierwszeństwo nadhome.php
plikiem.index.php
Plik jest domyślny szablon awaryjna dla wszystkich kontekstach w hierarchii szablonu . Jest on zawsze używany tylko wtedy, gdy dla bieżącego kontekstu nie istnieje bardziej szczegółowy plik szablonu.Hierarchia szablonów strony głównej witryny jest następująca:
front-page.php
'page' == get_option( 'show_on_front' )
: hierarchia stron'posts' == get_option( 'show_on_front' )
: blog publikuje hierarchię indeksówHierarchia szablonów indeksu postów na blogu jest następująca:
home.php
index.php
Hierarchia szablonów stron jest następująca:
page-{slug}.php
page-{id}.php
page.php
index.php
źródło
my-template-1
szablonu, gdy strona główna jest ustawiona na najnowsze posty, ani użyć,my-template-2
gdy strona jest ustawiona na stronę statyczną (bez kodowania)?Wszystko to pochodzi z dokładnego zapoznania się z hierarchią szablonów .
home.php
jest używany, jeśli:http://example.com/blog/
)home.php
plikJeśli ostatni warunek nie jest spełniony - tzn. Nie ma
home.php
pliku w motywie -index.php
zostanie załadowany.front-page.php
zostaną wykorzystane, jeśli:http://example.com/
) Ifront-page.php
plikJeśli ostatni warunek nie jest spełniony - tzn. Nie ma
front-page.php
pliku w motywie -index.php
zostanie załadowany.W podsumowaniu
Jeśli chcesz dostosować swoją listę postów, użyj
home.php
.Jeśli chcesz dostosować statyczną stronę główną, użyj
front-page.php
.źródło
home.php
będą używane do indeksu postów na blogu, niezależnie od lokalizacji. Jeśli strona główna jest ustawiona na wyświetlanie indeksu postów na blogu,home.php
zostanie użyta (jeślifront-page.php
nie istnieje).W skrócie:
index.php
jest tylko szablonem zastępczym, na wypadek gdyby nie znaleziono odpowiedniego szablonuhome.php
służy do bloga (lista ostatnich postów)front-page.php
służy do strony docelowejUniwersalny
index.php
szablonPlik
index.php
szablonu jest szablonem rezerwowym. Jest stosowany jako ostateczność, gdy nie jest dostępny żaden bardziej odpowiedni szablon. Na przykład, jeśli nie maszfront-page.php
ani a,home.php
toindex.php
zostanie użyte. Odnosi się to również w przypadku brakującycharchive.php
lubsingle.php
i tak dalej.Odnośnie
front-page.php
VShome.php
Teraz różnica między
front-page.php
ihome.php
szablonami polega na tym, żefront-page.php
jest używany, jak sama nazwa wskazuje, jako główna strona główna witryny, podczas gdyhome.php
ma być główną stroną sekcji Blog .Jaki szablon będzie używany dla strony docelowej mojej witryny?
front-page.php
Szablon, jeśli jest obecny, zostaną wykorzystane na głównej stronie głównej witryny (na przykładhttp://www.example.com/
). Jeśli nie jest obecny,home.php
zostanie użyty zamiast niego. Jeśli brakuje zarówno plików szablonu, jakfront-page.php
i szablonu, zostanie użyty szablon rezerwowy.home.php
index.php
Jaki szablon będzie używany na mojej stronie bloga?
WordPress pozwala ci mieć stronę „Blog” (która zawiera listę ostatnich postów) na innej stronie niż strona docelowa (np
http://www.example.com/blog/
.). Jeśli tak jest w przypadku Twojej witryny, strona blogu zawsze będzie używaćhome.php
szablonu. Jeślihome.php
nie istnieje,index.php
zostanie użyty szablon rezerwowy.Jak skonfigurować stronę docelową i stronę bloga?
Aby skonfigurować zawartość wyświetlaną na stronie głównej, przejdź do Administratora WordPress , w obszarze Narzędzia> Czytanie , możesz skonfigurować „ Wyświetlanie strony głównej ”, aby wyświetlać stronę statyczną lub swoje 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 symbol zastępczy strony Blog (która będzie korzystać z
home.php
szablonu):źródło
zaczerpnięte z hierarchii szablonów Wordpress
Szablon hierarchii szablonów:
źródło
Postanowiłem przetestować, który szablon jest używany dla każdej z poniższych stron, gdy ustawione są różne opcje wyświetlania strony głównej.
Wyniki są dość długie, ale mogą być wykorzystane jako odniesienie lub ściągawka.
Źródło: Czym różnią się szablony front-page.php i home.php w WordPress?
Uwaga dla redaktora: Próbowałem tutaj skopiować i wkleić tabele, ale zamiast HTML wymagany jest format Markdown. Jeśli to możliwe, przejdź na obniżkę cen.
źródło