web-dev-qa-db-fra.com

Vérifier si la page actuelle est la page de blog

Je suis nouveau sur WordPress. Je cherche un moyen de vérifier si la page en cours est la page de blog dans le code du fichier d’en-tête.

J'ai vérifié mais je ne peux pas trouver un moyen. Aidez-moi, Pls.

30
KarSho

Si par ' page de blog ' vous entendiez une page statique définie comme page de messages dans le Paramètres de lecture , vous pourrez alors le vérifier par Ce faisant:

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() et is_front_page(), vous devez les utiliser dans dans le bon ordre pour éviter les bogues et tester chaque configuration utilisateur.

(Source: Balises conditionnelles - La page de blog )}

Ou simplement:

if ( !is_front_page() && is_home() ) {
  // blog page
}

Ou plus simplement (je suppose):

if ( is_home() ) {
  // blog page
}
40
Giraldi

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, afin de le faire apparaître sur chaque page.

17
Vagish

Si par "page de blog", vous entendez 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 template_redirect action

9
Sergey Repin

Pour obtenir la page 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
}
2
J.Wang

Il y a une méthode délicate.

http://example.com/blog

Supposons que si votre slug de page de blog estblog, vous pouvez utiliser ce code.

global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}
0
Rajilesh Panoli

Je suppose que c'est très simple, j'étais dans une 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.

0
Rahman Zeb

Vous pouvez utiliser

<?php if ( is_single() ) { ?>

Do stuff here

<?php } ?>
0
Xav

HOMEPAGE

if(is_home() && is_front_page() || is_front_page()): // static or default hompage
 ...
endif;

BLOG

if(is_home() && !is_front_page()): // blog
 ...
endif;
0
DevWL