Când să folosim is_home() vs is_front_page()?

6 oct. 2011, 08:42:56
Vizualizări: 58.4K
Voturi: 77

Am descoperit că is_front_page pare să returneze true când vizualizez pagina principală și am o postare sticky atribuită acolo.

De asemenea, returnează true când am atribuit o pagină ca pagină statică de start prin Setări > Citire.

De ce aș vrea vreodată să folosesc is_home()?

0
Toate răspunsurile la întrebare 4
2
80

is_front_page() returnează true dacă utilizatorul se află pe pagina sau pagina de articole setată ca pagină principală în Setări->Citire->Pagina ta de start.

Deci, dacă setați despre noi ca pagină principală, atunci această condiție va fi adevărată doar când se afișează pagina despre noi.

is_home() returnează true când se află pe pagina listei de articole. Aceasta este de obicei pagina care afișează ultimele 10 articole.

Dacă setările din Pagina ta de start afișează sunt lăsate la valorile implicite, atunci pagina de start va returna true atât pentru is_front_page() cât și pentru is_home().

Un exemplu de utilizare a is_home():

  • Ați setat pagina de articole la o pagină numită Știri.
  • Un utilizator navighează acolo și în antet doriți să afișați navigație suplimentară
  • Puteți utiliza is_home() pentru a face acest lucru.
6 oct. 2011 09:09:24
Comentarii

Exact. Eu diferențiez astfel: is_front_page() returnează true când vizualizați Pagina Principală a Site-ului (fie că afișează indexul articolelor de blog sau o pagină statică), în timp ce is_home() returnează true când vizualizați Indexul Articolelor de Blog (fie că este afișat pe pagina principală sau pe o pagină statică).

Chip Bennett Chip Bennett
6 oct. 2011 14:40:27

Poate e timpul pentru un alias, de exemplu is_post_index sau ceva similar? Alt exemplu ridicol al compatibilității obsessive cu versiunile vechi din WordPress care de fapt afectează utilitatea.

Jesse Nickles Jesse Nickles
30 ian. 2023 12:08:07
7

Am descoperit că funcțiile is_home() și is_front_page() nu funcționează așa cum ne-am aștepta în cazul site-urilor multisite. Soluția mea alternativă folosind funcționalități PHP:

if($_SERVER['REQUEST_URI'] == '/') {
    // ești pe pagina principală
}

Așa cum s-a menționat în comentarii, această abordare nu va funcționa pentru instanțele WordPress instalate în subdirectoare ale rădăcinii web. Folosiți-o la discreția voastră.

3 mai 2016 18:30:22
Comentarii

Te rog să elaborezi cum nu oferă ceea ce era de așteptat.

Christine Cooper Christine Cooper
3 mai 2016 19:58:07

Pe un site principal multi-site, dacă folosești orice formă de is_home() sau is_front_page() pe o pagină statică sau blog, ambele funcții vor returna false.

Dylan Pierce Dylan Pierce
3 mai 2016 20:12:58

Tocmai am testat ambele condiții pe un mediu multi-site și ambele au returnat true când am vizitat paginile respective /.

Christine Cooper Christine Cooper
4 mai 2016 12:53:55

Folosesc cutia WordPress VVV cu pluginul pentru multisite: https://github.com/Varying-Vagrant-Vagrants/vvv-multisite poate există ceva configurat greșit acolo? Oricum, las un răspuns ca soluție alternativă pentru oricine ar întâmpina o situație similară.

Dylan Pierce Dylan Pierce
4 mai 2016 16:07:58

Codul tău este aproape perfect, singurul lucru este: Ce se întâmplă dacă WP este instalat într-un subdirector, de exemplu /blog sau /wordpress. Atunci acest lucru va fi inutil.

Remzi Cavdar Remzi Cavdar
2 nov. 2018 10:37:00

@RemziCavdar asta e adevărat. Voi edita răspunsul meu. Din păcate, din cauza numeroaselor modalități în care poți găzdui WP, întâmpini multe probleme.

Dylan Pierce Dylan Pierce
2 nov. 2018 18:42:32

@DylanPierce Ți-am dat și eu un like. Răspunsul lui Brady este mai sigur. Cred că vragant configurează greșit mediul tău de testare pentru că atât is_front_page() cât și is_home() ar trebui să funcționeze

Remzi Cavdar Remzi Cavdar
2 nov. 2018 21:15:19
Arată celelalte 2 comentarii
0

Vei dori să folosești is_home() atunci când vrei să verifici dacă utilizatorul vizualizează lista ta de articole de blog (de obicei setată să afișeze 10 articole pe pagină). Dacă ai un fișier home.php în tema ta, acesta va fi afișat atunci când condiția is_home() este adevărată.

Următoarele informații pot ajuta la eliminarea unei posibile confuzii: atunci când condițiile is_front_page() și is_home() sunt ambele adevărate, șablonul front-page.php va fi folosit în loc de home.php.

28 apr. 2014 23:53:46
0
  • Accesezi o pagină principală care este pagina de blog => is_front_page() = ADEVĂRAT && is_home() = ADEVĂRAT
  • Accesezi o pagină principală care este o pagină statică => is_front_page() = ADEVĂRAT && is_home() = FALS
  • Accesezi pagina de blog, dar pagina ta principală este o pagină statică => is_front_page() = FALS && is_home() = ADEVĂRAT (De asemenea, ADEVĂRAT când accesezi pagini paginate)

Referințe pentru definiții:

https://developer.wordpress.org/reference/functions/is_home/ https://developer.wordpress.org/reference/functions/is_front_page/

5 feb. 2024 10:50:43