Faire une page de sous catégories

Faire une page de sous catégories dans wordpress

Ici on va voir plusiseurs méthodes pour avoir une page listant toutes les sous catégories d’une catégorie mère dans wordpress.

Dans mon menu, j’ai des pages statiques, puis des catégories. Normalement, lorsque l’on clique sur un onglet de type ‘catégories’, la page renvoie tous les articles de cette catégories. Si en revanche sur l’une de ces catégories, on a plusieurs sous-catégories, on peut vouloir afficher une page qui  liste toutes les sous catégories ainsi qu’un lien vers les articles correspondants.

Pour y parvenir, on a plusieurs solutions, selon les besoins :

Une liste de sous catégories avec des liens vers les articles

<?php get_header(); ?>

<br />
<div class="explanation" id="zen-explanation" role="article">

<br />
<h2><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php single_cat_title() ?> par catégories</a></h2>
<p>

<?php $cats = get_categories(); foreach ($cats as $cat) { query_posts('showposts=1000&cat='.$cat->cat_ID);

<br />
<h2><?php echo $cat->cat_name; ?></h2>
<p>



<ul>
<?php while (have_posts()) : the_post(); ?>

<br />
<li style="font-weight:normal !important;"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a> - Commentaires (<?php echo $post->comment_count ?>)</li>
<p>

<?php endwhile; ?>
</ul>
<p>

<?php } ?>
</div>
<p>

<?php get_sidebar(); ?>

Ce code va afficher toutes les catégories et sous catégories dans le désordre avec leurs articles correspondants : copie

Une liste de sous catégories avec le nombre d’articles

Si je suis sur la catégorie wordpress par exemple, et que je veux juste afficher les sous catégories et le nombre de posts correspondants :

<?php get_header(); ?>

<br />
<div class="explanation" id="zen-explanation" role="article">

<br />
<h2><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php single_cat_title() ?> par catégories</a></h2>
<p>



<ul>
<?php wp_list_categories('orderby=id&show_count=1&use_desc_for_title=0&child_of=3'); ?> 
</ul>
<p>

</div>
<p>

<?php get_sidebar(); ?>

Ce qui donne :

categ

Une liste simple de sous catégories

global $ancestor;
$childcats = get_categories('child_of=' . $cat . '&hide_empty=1');
foreach ($childcats as $childcat) {
 if (cat_is_ancestor_of($ancestor, $childcat->cat_ID) == false){
 echo '

<li>
<br />
<h2><a href="'.get_category_link($childcat->cat_ID).'">';
 echo $childcat->cat_name . '</a></h2>
<p>
';
 echo '
'.$childcat->category_description.'
';
 echo '</li>
<p>
';
 $ancestor = $childcat->cat_ID;
 }
}?>

Ce qui nous retourne

ca

Voici donc trois façons d’afficher une page de catégorie avec toutes ses sous catégories.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.