web-dev-qa-db-fra.com

Comment afficher uniquement toutes les publications liées à la catégorie

J'essaie de créer un modèle personnalisé pour mes pages de catégorie, qui ne reçoit que les messages dans une catégorie spécifique. Pour le moment, je ne peux que tirer tous les messages et pas de catégorie spécifique ...

Mon code jusqu'ici ....

<?php
    //Identify current Post-Category-ID
    foreach((get_the_category()) as $category)
    {
        $postcat= $category->cat_ID;
        $catname =$category->cat_name;
    }
?>
//Print category ID
<h2><?php echo $catname; ?></h2>
<?php 
$thumbnails = get_posts();
foreach ($thumbnails as $thumbnail) {
    if ( has_post_thumbnail($thumbnail->ID)) {
      echo '<li><a href="' . get_permalink( $thumbnail->ID ) . '" title="' . esc_attr( $thumbnail->post_title ) . '">';
      echo get_the_post_thumbnail($thumbnail->ID, 'full');
      echo '</a></li>';
    }
}
?>
2
calebo

Vous avez déjà du code pour déterminer la catégorie à partir de laquelle vous souhaitez afficher les messages. Voici comment vous pouvez saisir tous les messages de cette catégorie:

// create a query to grab our posts in category of ID $postcat
$q = new WP_Query(array( 'cat' => $postcat));
if($q->have_posts()){
    // foreach post found
    while($q->have_posts()){
        $q->the_post();
        // code for displaying each post goes here
    }
    // cleanup after the WP_Query, reset the post data
    wp_reset_postdata();
} else {
    // no posts were found!
}

N'utilisez jamais query_posts pour vos requêtes, vérifiez toujours si des publications ont réellement été trouvées et nettoyez toujours après vous.

Pour plus d'arguments pour les requêtes, voir ici:

http://codex.wordpress.org/Class_Reference/WP_Query

1
Tom J Nowell

il y a un autre moyen plus facile que cela tout dans archive.php

remplacer ce code

<?php
get_template_part('loop', $the_template_part);}
    ?> 

avec ce code

<?php
    if (is_category('CAT_ID'))
        {get_template_part('loop2', $the_template_part);
        } 
         else {get_template_part('loop', $the_template_part);}
    ?> 

créez ensuite votre boucle personnalisée à votre guise et nommez-la loop2 ou ce qui vous donnera exactement ce que vous voulez, en affichant uniquement les publications de catégorie dans la boucle personnalisée que vous souhaitez créer.

1
Shady M Rasmy

J'essaie de créer un modèle personnalisé pour mes pages de catégorie, qui ne reçoit que les messages dans une catégorie spécifique.

Vous savez que nous avons des modèles de catégories intégrés à WordPress.

http://codex.wordpress.org/Category_Templates

Vous pouvez vraiment faire category-slug.php pour la catégorie et en finir. Sauf si vous essayez d'indiquer que vous souhaitez que la page de catégorie affiche cette catégorie et aucun des messages pouvant figurer dans les enfants ou dans d'autres catégories.

1
Ipstenu