Significato dello snippet "if ( is_home() && ! is_front_page() )"?
Vedo spesso il seguente codice nei file index.php. Capisco che is_front_page()
restituisce true quando si visualizza la Pagina Iniziale del Sito (sia 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 (sia che venga visualizzato nella pagina iniziale o in una pagina statica). Sono ancora un po' confuso sull'utilizzo del seguente codice -
<?php if ( have_posts() ) : ?>
<?php if ( is_home() && ! is_front_page() ) : ?>
<header>
<h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
</header>
<?php endif; ?>
Qualsiasi spiegazione sul perché questo pezzo di codice sia così popolare è molto apprezzata.

Ecco come farlo correttamente:
if ( is_front_page() && is_home() ) {
// Homepage predefinita
} elseif ( is_front_page()){
// Homepage statica
} elseif ( is_home()){
// Pagina blog
} else {
// Tutto il resto
}
Questo è l'unico modo (corretto) per visualizzare o modificare il contenuto con la tua homepage e la tua pagina blog.

Quindi è così che si impostano stili diversi per le pagine in WordPress? Ad esempio, la mia homepage potrebbe avere una grande immagine hero, mentre le pagine Chi Siamo e Contatti potrebbero non averne affatto. È questo il modo in cui si procede per realizzare layout diversi per pagine diverse?

Questo mostrerà il titolo della pagina quando è impostata una pagina statica per visualizzare gli articoli.
Esempio:
Se mostro gli articoli nella mia homepage... Non farà nulla.
Se invece, ad esempio, mostro gli articoli su una pagina dal titolo Notizie... Mostrerà Notizie in un tag H1.
Questo viene utilizzato affinché il titolo della pagina venga mostrato ogni volta che gli articoli sono visualizzati su una pagina, ma non mostri nulla quando gli articoli del blog sono visualizzati sulla pagina principale (home page).
Lo facciamo perché se è sulla homepage... mostrerà il titolo del primo articolo, facendolo apparire due volte (una in alto nel tag H1 e di nuovo quando gli articoli vengono ciclati).

Grazie Shramee. Ho trovato il titolo della mia pagina indice del blog in un <h1> mentre cercavo di capirlo, ma in realtà non appare da nessuna parte. Penso che alcuni sviluppatori di temi lo utilizzino solo per aiutare le persone che usano screen-reader, e poi nascondono il testo effettivo, il che è un po' confuso per i principianti se non è commentato/documentato.

Non sono sicuro riguardo a "popolare", non mi sembra così tanto (ma poi non guardo così tanti temi).
Sembri capire bene cosa fa ogni condizionale, quindi questo non dovrebbe confonderti. Questo combina le condizioni per verificare che venga visualizzato l'indice del blog e che non sia la pagina frontale.
Ah, il motivo per single_post_title()
immagino sia che mostra il titolo per $wp_query->queried object
(impostato dalla query principale come contesto corrente), piuttosto che la variabile globale $post
(impostata iterando il loop).
In alcune circostanze questi saranno uguali, ma non in casi come quello che la condizione verifica. Il loop conterrà post, ma l'oggetto interrogato sarà una pagina (a meno che non stia facendo confusione :).
