2010-05-29 7 views
1

Je voudrais savoir comment empêcher l'affichage des messages de sous-catégorie. Ma page d'accueil répertorie tous les messages de trois «catégories principales» (catégorie parente), mais malheureusement, il répertorie également certains messages des sous-catégories.WordPress: Empêcher l'affichage des messages sous-catégorie

Voici le code que j'utilise pour obtenir les postes de catégorie spécifique:

<h2>Category Name</h2> 
<ul> 
    <?php $category_query = new WP_Query(array('category_name' => 'category1', 'showposts' => 5)); ?> 
    <?php while ($profissionais_query->have_posts()) : $profissionais_query->the_post(); ?> 
    <li> 
     <a class="title" href="<?php the_permalink(); ?>"><?php the_title(); ?></a> 
     <?php the_excerpt(); ?> 
    </li> 
    <?php endwhile; ?> 
</ul> 

Est-ce que quelqu'un a une idée?

Merci.

Répondre

1

Essayez ce style de nouvelle requête; il montre seulement la catégorie. Il peut être utilisé mutliple fois dans une page ou post (avec exécution php activé) sans conflit:

<?php $my_query = new WP_Query('category_name=mycategory&showposts=5'); ?> 
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?> 
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> 
<?php the_title(); ?></a> 
<?php the_excerpt(); ?> 
<?php endwhile; ?> 
+0

Il est conseillé d'ajouter Pour détruire les requêtes personnalisées après leur exécution, sinon elles peuvent affecter d'autres requêtes en cours d'exécution sur la page. Ajoutez-le juste avant la fin. – Jared

+0

songdogtech: malheureusement ce morceau de code n'a pas fonctionné, car il montre toujours les messages de la sous-catégorie. Avez-vous une autre idée? Je vous remercie. –

+0

Carlos; Je l'ai testé avec des sous-catégories et il ne montre pas de sous-catégories; Les sous-catégories ont leur propre identifiant de catégorie et doivent être appelées spécifiquement. Essayez-le dans un modèle de page sans autres boucles ou code (autre que la boucle WP standard) pour isoler le conflit. Jared: Il n'a pas besoin d'une requête wp_reset car c'est une requête autonome. Je l'utilise sur plusieurs sites, multiplier les temps sur une page/post et aucun des conflits de boucles de requêtes. – markratledge

1

Cela devrait fonctionner:

<?php $category_ID = $cat; // get ID of current category ?> 

<?php $excludes = get_categories('child_of='.$category_ID) ; 

    // For each child, add just the ID to an array 
    foreach ($excludes as $key => $value){ 
     $exs[] = $value->cat_ID; 
    } 

$my_query = new WP_Query(array(
      'cat' => $category_ID, 
      'category__not_in' => $exs 

)); 
if ($my_query->have_posts()) : while($my_query->have_posts()) : $my_query->the_post(); 
?> 
0

Ci-dessous le code affichera les messages seulement de la catégorie actuelle

<?php 
$current_cat = get_query_var('cat'); 

$args=array(
    'category__in' => array($current_cat), 
    'showposts' => 5 
); 

query_posts($args); 

set_query_var("cat",$current_cat); 

if (have_posts()) : 

    while (have_posts()) : the_post(); 
?> 
     <a class="title" href="<?php the_permalink(); ?>"><?php the_title(); ?></a> 
     <?php the_excerpt(); ?> 
<?php 

    endwhile; 

else : 

?> 
     <h2>Nothing found</h2> 
<?php 

endif; 

?> 
Questions connexes