Quando usare is_home() vs is_front_page()?

6 ott 2011, 08:42:56
Visualizzazioni: 58.4K
Voti: 77

Ho notato che is_front_page sembra restituire true quando sto visualizzando la home page e ho un post in evidenza assegnato.

Restituisce true anche quando ho assegnato una pagina come pagina statica principale tramite Impostazioni > Lettura.

Perché dovrei mai voler utilizzare is_home()?

0
Tutte le risposte alla domanda 4
2
80

is_front_page() restituisce true se l'utente si trova sulla pagina o sulla pagina di articoli impostata come pagina iniziale in Impostazioni->Lettura->La tua homepage mostra

Quindi se imposti about us come pagina iniziale, questa condizione sarà vera solo quando viene mostrata la pagina about us.

is_home() restituisce true quando ci si trova nella pagina dell'elenco degli articoli. Solitamente è la pagina che mostra gli ultimi 10 articoli.

Se le impostazioni sotto La tua homepage mostra sono lasciate ai valori predefiniti, la homepage restituirà true sia per is_front_page() che per is_home().

Un esempio di utilizzo di is_home():

  • Hai impostato la tua pagina degli articoli su una pagina chiamata News.
  • Un utente naviga lì e nell'intestazione vuoi mostrare una navigazione aggiuntiva
  • Potresti usare is_home() per fare questo.
6 ott 2011 09:09:24
Commenti

Esatto. Faccio la differenza nel modo seguente: is_front_page() restituisce true quando si visualizza la Pagina Principale del Sito (che mostri l'indice dei post del blog o una pagina statica), mentre is_home() restituisce true quando si visualizza l'Indice dei Post del Blog (che sia mostrato nella pagina principale o in una pagina statica).

Chip Bennett Chip Bennett
6 ott 2011 14:40:27

Forse è il momento per un alias come is_post_index o qualcosa del genere? Un altro esempio ridicolo di come l'ossessione per la compatibilità all'indietro di WP finisca per danneggiare l'usabilità.

Jesse Nickles Jesse Nickles
30 gen 2023 12:08:07
7

Ho scoperto che is_home() e is_front_page() non restituiscono il risultato atteso per i multisiti. La mia soluzione alternativa utilizzando le funzionalità integrate di PHP:

if($_SERVER['REQUEST_URI'] == '/') {
    // devi essere nella home page
}

Come menzionato nei commenti, questo approccio non funzionerà per installazioni WordPress in sottodirectory della root web. Usa a tua discrezione.

3 mag 2016 18:30:22
Commenti

Per favore, approfondisci come non fornisce ciò che ci si aspetta.

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

Su un sito principale multi-sito, se usi qualsiasi forma di is_home() o is_front_page() su una pagina frontale statica o del blog, entrambe le funzioni restituiranno false.

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

Ho appena testato entrambe le condizioni in un ambiente multisito e entrambe hanno restituito true quando ho visitato le rispettive pagine /.

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

Sto utilizzando la scatola VVV di WordPress con il plugin multisito: https://github.com/Varying-Vagrant-Vagrants/vvv-multisite forse c'è qualcosa di mal configurato? In ogni caso lascio una risposta con una soluzione alternativa nel caso qualcuno si trovi in una situazione simile.

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

Il tuo codice è quasi perfetto, l'unica cosa è: E se WP è installato in una sottodirectory, ad esempio /blog o /wordpress. Allora questo sarà inutile.

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

@RemziCavdar è vero. Modificherò la mia risposta. Purtroppo, a causa dei molti modi in cui puoi ospitare WP, ti imbatti in molti problemi.

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

@DylanPierce Ti ho anche dato un pollice in su. La risposta di Brady è più solida. Penso che vragant stia configurando il tuo ambiente di test in modo errato perché sia is_front_page() che is_home() dovrebbero funzionare

Remzi Cavdar Remzi Cavdar
2 nov 2018 21:15:19
Mostra i restanti 2 commenti
0

Dovresti usare is_home() quando vuoi verificare se l'utente sta visualizzando l'elenco dei tuoi articoli del blog (solitamente impostato per mostrare 10 articoli per pagina). Se hai un file home.php nel tuo tema, questo verrà visualizzato quando la condizione is_home() è vera.

Il seguente punto può aiutare a chiarire ulteriormente: quando entrambe le condizioni is_front_page() e is_home() sono vere, verrà utilizzato il template front-page.php invece di home.php.

28 apr 2014 23:53:46
0
  • Visiti una pagina iniziale che è la homepage del blog => is_front_page() = VERO && is_home() = VERO
  • Visiti una pagina iniziale statica => is_front_page() = VERO && is_home() = FALSO
  • Visiti la homepage del blog ma la tua pagina iniziale è una pagina statica => is_front_page() = FALSO && is_home() = VERO (Anche VERO quando si raggiungono pagine impaginate)

Riferimenti per le definizioni:

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

5 feb 2024 10:50:43