Réponses:
Si par " page de blog ", vous entendez une page statique définie comme page de messages dans les paramètres de lecture , vous pouvez le vérifier en procédant comme suit:
if ( is_front_page() && is_home() ) {
// Default homepage
} elseif ( is_front_page() ) {
// static homepage
} elseif ( is_home() ) {
// blog page
} else {
//everyting else
}
Lorsque vous utilisez
is_home()
etis_front_page()
, vous devez les utiliser dans le bon ordre pour éviter les bugs et tester chaque configuration utilisateur.
(Source: Tags conditionnels - La page du blog )
Ou simplement:
if ( !is_front_page() && is_home() ) {
// blog page
}
Ou plus simplement (je suppose):
if ( is_home() ) {
// blog page
}
Vous pouvez utiliser les éléments suivants dans le fichier functions.php de votre thème:
function is_blog () {
return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type();
}
Et mettez ceci dans le fichier que vous vérifiez:
<?php if (is_blog()) { echo 'You are on a blog page'; } ?>
Vous pouvez utiliser des points d'ancrage dans votre fichier functions.php pour accrocher ce qui précède, pour que celui-ci apparaisse sur chaque page.
Si par "page de blog", vous entendiez une page statique définie comme page de messages dans Reading:
global $wp_query;
if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
//static blog page
}
PS Cette solution fonctionne également sur l' action template_redirect
global $wp_query
), mais aussi parce qu'il ne répond pas complètement à la question. C'est une fonction, mais l'OP a demandé comment résoudre cela dans son fichier d'en-tête - il aurait donc besoin d'un peu plus d'explications sur ce qu'il faut mettre et où. Encore une fois, bienvenue, heureux de vous avoir ici!
Pour obtenir la page d'index du blog , j'ai trouvé que
if ( !is_front_page() && is_home() ) {
// blog page
}
ne fonctionne pas pour moi, je devais utiliser la fonction get_option ('page_for_posts') pour identifier la page de blog post_id, ma réponse est
if ( !is_front_page() && is_home() ){
if ( empty ( $post_id) ) {
global $post;
$post_id = get_option( 'page_for_posts' );
}
//blog page
}
Il y a une méthode délicate.
Supposons que si votre slug de page de blog est blog
, vous pouvez utiliser ce code.
global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}
Je suppose que c'est très simple, j'étais dans la même situation et j'ai utilisé la technique suivante qui consiste à utiliser le slug de page.
if( is_page('blog') ) {
echo "This is your blog page";
}
Mais assurez-vous que vous n'avez pas sélectionné page d'accueil pour afficher les articles de blog récents et que vous avez défini une page spécifique pour les blogs tels que blog ou actualités, etc., utilisez simplement ce slug de page et tout irait bien.
Vous pouvez utiliser..
<?php if ( is_single() ) { ?>
Do stuff here
<?php } ?>
pour vérifier si c'est un seul post de blog. Ou...
<?php if ( is_home() ) { ?>
Do stuff here
<?php } ?>
pour vérifier si c'est la page d'accueil du blog
J'utilise de cette façon
// 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() )
, du moins à mon avis, est si vous distribuez un thème avec un style de disposition différent pour la page d’accueil par défaut et la page de blog .