Déterminer si la page est la page des publications

18

Sur la page Paramètres de lecture, vous pouvez définir une "Page d'accueil" et une "Page de publications". Vous pouvez vérifier si la page actuelleis_front_page();

Existe-t-il une fonction similaire pour la "Page Posts". J'ai remarqué que is_page();cela ne fonctionne pas pour cette page spéciale.

Merci

Mike
la source

Réponses:

34

is_home() vérifie la "Page de messages", malgré le nom de la fonction quelque peu déroutant.

pommes dorées
la source
merci, je pensais les avoir tous vérifiés, mais je suppose que non ...
mike
3
Et alors $wp_query->is_posts_page?
Weston Ruter
@WestonRuter a la bonne réponse à la question.
Le
6

Wordpress est livré avec 7 types de page de modèle principaux, qui peuvent être déterminés de cette façon

if ( is_main_query() ) {
    // Error
    if ( is_404() ) {
        ;
    }
    // Front page
    if ( is_front_page() ) {
        ;
    }
    // Archive
    if ( is_archive() ) {
        ;
    }
    // Comments popup
    if ( is_comments_popup() ) {
        ;
    }
    // Search
    if ( is_search() ) {
        ;
    }
    // Singular
    if ( is_singular() ) {
        ;
    }
    // Home - the blog page
    if ( is_home() ) {
        ;
    }
}

is_home vous dit que vous avez la page du blog.

DAH
la source
1

La «page de messages» est généralement une archive de:

  • messages d'une catégorie
  • messages d'un tag
  • messages d'une date (année, mois ...)
  • messages des archives principales

Chacun de ceux-ci peut être vérifié par l'une des nombreuses balises conditionnelles comme is_category() is_tag() is_date() is_archive() Et tant d'autres. Pour obtenir une meilleure compréhension, rendez-vous sur le codex http://codex.wordpress.org/Conditional_Tags

Bainternet
la source
0

Vérifiez d'abord les choses liées aux blogs comme l'auteur, le tag, le type de message

function is_blog () {
        global  $post;
        $posttype = get_post_type($post );
        return ( ((is_archive()) || (is_author()) || (is_category()) || (is_home()) || (is_single()) || (is_tag())) && ( $posttype == 'post')  ) ? true : false ;
  }

Maintenant, vérifiez et retournez quelque chose que vous voulez avoir

function check_post_type(){
    $postType;
    if (is_blog())
      {
         $postType = 'I am post';
      } else
       {
          $postType = 'I am page';
       };
    return $postType;
  }

Utilisez-le comme Boss <?php echo check_post_type();?>

Merci à Wes Bos

Hidayt Rahman
la source
0

TL; DR

Cas A . Il n'est pas nécessaire de le déterminer dans le fichier de modèle principal (index.php) car il s'agit du modèle par défaut [1] .

Cas B . Pour le déterminer à l'intérieur d'un modèle de page (ex: page.php), il suffit de le vérifier comme ceci:

get_option( 'page_for_posts' ) == get_the_ID()

Détails

Je suis littéralement allé en creuser le code source [2] juste pour pouvoir savoir comment wordpress vérifie la valeur. Il s'avère, il utilise l'instruction get_option( 'page_for_posts' )pour connaître l'ID de publication de la valeur sélectionnée de la page Posts .

Donc oui, à cette fin, il n'y a pas de fonction de vérificateur officiel similaire à is_front_page().

Tant que vous connaissez l'ID de la page que vous avez sélectionnée, vous pouvez l'utiliser pour le processus de vérification.

Les références

  1. Codex WordPress, développement de thèmes, codex.wordpress.org/Theme_Development

  2. Code source des paramètresParamètres de lecture , github.com/WordPress/.../wp-admin/options-reading.php

Abel Melquiades Callejo
la source