Quando utilizzare is_home () vs is_front_page ()?


66

Ho scoperto che is_front_pagesembra tornare vero quando sto visualizzando la home page e ho un singolo post appiccicoso assegnato lì.

Restituisce vero anche quando ho assegnato una pagina come prima pagina statica tramite Impostazioni> Lettura .

Perché dovrei mai voler usare is_home()?

Risposte:


65

is_front_page()ritorna vero se l'utente si trova sulla pagina o sulla pagina dei post che è impostata sulla prima pagina in Impostazioni-> Lettura-> Viene visualizzata la tua homepage

Quindi, se si imposta about uscome prima pagina, questo condizionale sarà vero solo se mostra la pagina chi siamo .

is_home() torna vero quando nella pagina dell'elenco dei post, questa è di solito la pagina che mostra gli ultimi 10 post.

Se le impostazioni in La tua home page vengono visualizzate come predefinite, la home page tornerà vera per entrambi is_front_page()eis_home()

Un esempio di utilizzo is_home():

  • Hai impostato la pagina dei tuoi post su una pagina chiamata Notizie .
  • Un utente naviga lì e nell'intestazione si desidera mostrare la navigazione aggiuntiva
  • Potresti usare is_home()per fare questo.

18
Esattamente. Distinguo come segue: is_front_page()restituisce true quando si visualizza la pagina iniziale del sito (sia che si visualizzi l'indice dei post di blog o una pagina statica), mentre is_home()restituisce true quando si visualizza l' indice dei post di blog (se visualizzato sulla prima pagina o in una pagina statica).
Chip Bennett,

3

L'ho scoperto is_home()e is_front_page()non fornire ciò che ci si aspetta dai siti multipli. La mia soluzione consiste nell'utilizzare i gadget PHP integrati:

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

Come accennato nei commenti, questo approccio non funzionerà per le istanze WP installate nelle sottodirectory della web root. Utilizzare a propria discrezione.


Si prega di approfondire come non offre ciò che ci si aspetta.
Christine Cooper

Su un sito principale multi-sito se si utilizza qualsiasi forma di is_home()o is_front_page()su una pagina iniziale statica o blog, entrambe le funzioni restituiranno false.
Dylan Pierce,

1
Ho appena testato entrambe le condizioni in un ambiente multisito ed entrambi sono tornati veri quando ho visitato le rispettive /pagine.
Christine Cooper

Sto usando la casella wordpress VVV con il plug-in multisito: github.com/Varying-Vagrant-Vagrants/vvv-multisite forse c'è qualcosa che non è configurato correttamente? Indipendentemente dal lasciare una risposta per una soluzione alternativa se qualcuno si presenta con una situazione simile.
Dylan Pierce,

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

1

Si desidera utilizzare is_home()quando si desidera verificare se l'utente sta visualizzando l'elenco dei post del blog (in genere impostato per visualizzare 10 post per pagina). Se hai un home.phpfile nel tuo tema, questo verrà visualizzato quando la is_home()condizione è vera.

Quanto segue può eventualmente rimuovere anche un po 'di confusione: quando is_front_page()e is_home()condizioni, entrambe sono vere, front-page.phpverrà utilizzato il modello anziché home.php.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.