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

25

Je suis nouveau sur Wordpress . Je dois vérifier dans le fichier d'en-tête si la page actuelle est la page de blog ?

J'ai vérifié mais je ne trouve pas le chemin. Aidez-moi, Pls.

    
posée KarSho 19.07.2013 - 13:20

9 réponses

33

Si vous entendiez par page de blog , vous vouliez une page statique définie comme page de messages dans les Paramètres de lecture . , alors vous pouvez le vérifier en faisant ceci:

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    le bon ordre pour éviter les bugs 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
}
    
réponse donnée Giraldi 03.08.2014 - 05:50
13

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.

    
réponse donnée Vagish 18.04.2014 - 10:26
8

Si vous entendez "page de blog", vous entendez une page statique définie comme page de publication dans Reading:

global $wp_query;

if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
    //static blog page
}

PS. Cette solution fonctionne également avec l'action template_redirect

.     
réponse donnée Sergey Repin 17.04.2016 - 12:33
1

Vous pouvez utiliser

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

Do stuff here

<?php } ?>
    
réponse donnée Xav 19.07.2013 - 13:23
1

Pour obtenir la page d'index du blog , j'ai constaté 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
}
    
réponse donnée J.Wang 16.05.2018 - 20:58
0

Il existe une méthode complexe.

enlace

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

global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}
    
réponse donnée Rajilesh Panoli 04.10.2016 - 15:04
0

HOMEPAGE

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

BLOG

if(is_home() && !is_front_page()): // blog
 ...
endif;
    
réponse donnée DevWL 17.12.2016 - 05:51
0

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é la 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 pour que tout se passe bien.

    
réponse donnée Rahman Zeb 16.09.2017 - 10:01
-2

J'utilise 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
}
    
réponse donnée John Smith 27.09.2015 - 13:07

Lire d'autres questions sur les étiquettes