Kiedy używać is_home () vs is_front_page ()?

66

Zauważyłem, że is_front_pagewydaje się, że zwraca prawdę, gdy przeglądam stronę główną i mam przypisany jeden przyklejony post.

Zwraca również wartość true, gdy przypisałem stronę jako statyczną stronę główną za pomocą opcji Ustawienia> Czytanie .

Dlaczego miałbym kiedykolwiek chcieć używać is_home()?

N2Mystic
źródło

Odpowiedzi:

65

is_front_page()zwraca true, jeśli użytkownik jest na stronie lub stronie postów ustawionej na stronie głównej w Ustawienia-> Czytanie-> Twoja strona główna wyświetla się

Jeśli więc ustawisz about usjako stronę główną, to warunek będzie spełniony tylko wtedy, gdy pokażesz stronę o nas .

is_home() zwraca true, gdy jest na stronie z listą postów. Zwykle jest to strona z ostatnimi 10 postami.

Jeśli ustawienia w obszarze Wyświetlanie strony głównej pozostaną domyślnie, strona główna zwróci wartość true zarówno dla, jak is_front_page()iis_home()

Przykład użycia is_home():

  • Ustawiłeś stronę swoich postów na stronę o nazwie Wiadomości .
  • Użytkownik nawiguje tam, aw nagłówku chcesz wyświetlić dodatkową nawigację
  • Możesz to is_home()zrobić.
Brady
źródło
18
Dokładnie. Rozróżniam w następujący sposób: is_front_page()zwraca true podczas przeglądania strony głównej witryny (niezależnie od tego, czy wyświetla indeks indeksu postów na blogu, czy stronę statyczną), a is_home()zwraca true podczas przeglądania indeksu postów blogu (niezależnie od tego, czy jest wyświetlany na stronie głównej, czy na stronie statycznej).
Chip Bennett,
3

Odkryłem to is_home()i is_front_page()nie dostarczam tego, czego można się spodziewać po wielu witrynach. Moje obejście przy użyciu wbudowanych dodatków PHP:

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

Jak wspomniano w komentarzach, to podejście nie będzie działać dla instancji WP zainstalowanych w podkatalogach katalogu głównego. Użyj według własnego uznania.

Dylan Pierce
źródło
Proszę wyjaśnić, w jaki sposób nie spełnia oczekiwań.
Christine Cooper
Jeśli używasz dowolnej formy is_home()lub is_front_page()na stronie statycznej lub blogu, w wielu witrynach obie funkcje zwrócą wartość false.
Dylan Pierce
1
Właśnie przetestowałem oba warunki w środowisku wielostanowiskowym i oba zwróciły wartość prawda, gdy odwiedziłem odpowiednie /strony.
Christine Cooper
Używam wordpress VVV box z wtyczką wielu witryn : github.com/Varying-Vagrant-Vagrants/vvv-multisite może coś jest źle skonfigurowane? Niezależnie od tego pozostawienie odpowiedzi na obejście, jeśli ktoś przyjdzie z podobną sytuacją.
Dylan Pierce
Twój kod jest prawie idealny, jedyne: Co, jeśli WP jest zainstalowany w podkatalogu, na przykład / blog lub / wordpress. To będzie bezużyteczne.
Remzi Cavdar,
1

Chcesz użyć, is_home()gdy chcesz sprawdzić, czy użytkownik przegląda twoją listę postów na blogu (zwykle ustawiony na wyświetlanie 10 postów na stronie). Jeśli masz home.phpmotyw w pliku, zostanie on wyświetlony, gdy is_home()warunek będzie spełniony.

Następujące elementy mogą również usunąć pewne zamieszanie: kiedy is_front_page()i is_home()warunki, oba są prawdziwe, szablon front-page.phpzostanie użyty zamiast home.php.

Momekh
źródło