Risposte:
Se per " pagina del blog " intendevi una pagina statica impostata come pagina dei post nelle Impostazioni di lettura , puoi verificarla in questo modo:
if ( is_front_page() && is_home() ) {
// Default homepage
} elseif ( is_front_page() ) {
// static homepage
} elseif ( is_home() ) {
// blog page
} else {
//everyting else
}
Quando si utilizza
is_home()
eis_front_page()
, è necessario utilizzarli nell'ordine corretto per evitare bug e testare ogni configurazione dell'utente.
(Fonte: tag condizionali - La pagina del blog )
O semplicemente:
if ( !is_front_page() && is_home() ) {
// blog page
}
O più semplicemente (suppongo):
if ( is_home() ) {
// blog page
}
Puoi usare quanto segue nel tuo file Functions.php di temi:
function is_blog () {
return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type();
}
E quindi inseriscilo nel file che stai controllando:
<?php if (is_blog()) { echo 'You are on a blog page'; } ?>
Puoi usare Hooks nel tuo file Functions.php per agganciare quanto sopra, per farlo apparire su ogni pagina.
Se per "pagina blog" intendevi una pagina statica impostata come pagina post nella lettura:
global $wp_query;
if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
//static blog page
}
PS. Questa soluzione funziona anche sull'azione template_redirect
global $wp_query
) ma anche perché non risponde completamente alla domanda. È una funzione, ma l'OP ha chiesto come risolverlo nel suo file di intestazione, quindi potrebbe aver bisogno di una spiegazione in più su cosa mettere dove. Ancora una volta, benvenuto, felice di averti qui!
Per ottenere la pagina dell'indice del blog , l'ho trovato
if ( !is_front_page() && is_home() ) {
// blog page
}
non funziona per me, ho dovuto usare la funzione get_option ('page_for_posts') per identificare la Pagina Blog post_id, la mia risposta è
if ( !is_front_page() && is_home() ){
if ( empty ( $post_id) ) {
global $post;
$post_id = get_option( 'page_for_posts' );
}
//blog page
}
C'è un metodo complicato.
Supponiamo che lo slug della pagina del tuo blog sia blog
, puoi usare questo codice.
global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}
Immagino che sia molto semplice trovarmi nella stessa situazione e ho usato la seguente tecnica che consiste nell'utilizzare la lumaca di pagina.
if( is_page('blog') ) {
echo "This is your blog page";
}
Ma assicurati di non aver selezionato la home page per visualizzare i post di blog recenti e di aver impostato una pagina specifica per blog come blog, notizie, ecc., Usa solo quella lumaca di pagina e starai bene.
Puoi usare..
<?php if ( is_single() ) { ?>
Do stuff here
<?php } ?>
per verificare se si tratta di un singolo post sul blog. O...
<?php if ( is_home() ) { ?>
Do stuff here
<?php } ?>
per verificare se si tratta della home page del blog
Uso così
// Get body classes as array
$body_classes = get_body_class();
// Check if "blog" class exists in the array
if(in_array("blog", $body_classes)) {
// Do stuff
}
if ( !is_front_page() && is_home() )
, almeno secondo me, è se stai distribuendo un tema che ha uno stile di layout diverso per la homepage predefinita e la pagina del blog .