Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coupe WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Comment afficher uniquement la catégorie enfant dans la boucle de votre publication WordPress

Note éditoriale : Nous percevons une commission sur les liens des partenaires sur WPBeginner. Les commissions n'affectent pas les opinions ou les évaluations de nos rédacteurs. En savoir plus sur Processus éditorial.

Vous souhaitez afficher uniquement la catégorie enfant dans votre boucle de publication WordPress ?

La plupart des thèmes WordPress affichent toutes les catégories d’une publication, y compris les catégories parents et enfants. Cependant, si vous ajoutez beaucoup de catégories à vos publications, alors cela peut donner à votre site un aspect désordonné et empêcher les lecteurs de trouver un contenu intéressant.

Dans cet article, nous allons vous afficher comment afficher facilement uniquement la catégorie enfant dans votre boucle de publication WordPress.

Showing only child categories inside WordPress post loop

Pourquoi afficher uniquement la catégorie enfant dans la boucle de publication de WordPress ?

Lorsque vous créez un blog WordPress, vous pouvez organiser votre contenu à l’aide de catégories et d’identifiants.

Pour aider les lecteurs à trouver plus rapidement un contenu intéressant, vous pouvez même créer des catégories enfant (ou sous-catégories).

Par exemple, si vous avez un blog de voyage, vous pouvez créer une catégorie « Destinations », puis des catégories subordonnées telles que « Europe », « Amérique » et « Australie ».

Par défaut, la plupart des thèmes WordPress affichent toutes les catégories parents et enfants pour une publication.

Displaying the child categories only in the WordPress post loop

Cependant, si vous utilisez beaucoup de catégories, les pages de votre blog risquent d’être désordonnées et compliquées. Il peut également être plus difficile pour les lecteurs de trouver la catégorie qui les intéresse.

Pour cette raison, vous pouvez vouloir masquer les catégories parents génériques d’une publication et afficher uniquement les catégories enfants. Ceci étant dit, voyons comment afficher uniquement les catégories enfants dans la boucle de publication de WordPress.

Avant de modifier un fichier de thème WordPress : points clés à retenir

Ce guide s’adresse aux personnes qui sont à l’aise avec le codage et la modification des fichiers de thèmes WordPress. Voici quelques éléments à connaître avant de suivre le tutoriel :

  1. Tout d’abord, vous devez connecter votre site au FTP ou ouvrir le gestionnaire de fichiers de votre hébergeur pour pouvoir accéder à ces fichiers.
  2. Si vous êtes débutant, vous pouvez alors consulter notre guide du débutant sur la façon de coller des extraits du web dans WordPress pour vous préparer en amont.
  3. Nous vous recommandons de créer une sauvegarde ou d’utiliser un site de staging pour suivre cette méthode. Ainsi, en cas de problème, votre site direct ne sera pas affecté.

Dernier point, ce guide s’applique uniquement aux thèmes WordPress classiques. Les thèmes en bloc ont une structure différente pour les fichiers de thème.

Afficher uniquement la catégorie enfant dans la boucle de publication de WordPress

Tout d’abord, vous devez trouver dans les fichiers de votre thème le code responsable de l’affichage des catégories. Cela peut prendre un certain temps, mais vous pouvez utiliser la fonctionnalité « trouver » de votre éditeur/éditrices de code pour accélérer les choses.

Essayez de trouver du code lié à la catégorie, comme has_category ou get_the_category_list. Si vous les trouvez, vous devriez être dans le bon fichier.

Si vous utilisez le thème Twenty Twenty-One, le fichier que vous devez rechercher est le fichier template-tags qui se trouve dans le dossier ‘inc’. Voici l’extrait responsable de l’affichage des catégories :

if ( has_category() || has_tag() ) {
    echo '<div class="post-taxonomies">';
    $categories_list = get_the_category_list( wp_get_list_item_separator() );
    if ( $categories_list ) {
        printf(
            /* translators: %s: List of categories. */
            '<span class="cat-links">' . esc_html__( 'Categorized as %s', 'twentytwentyone' ) . ' </span>',
            $categories_list // phpcs:ignore WordPress.Security.EscapeOutput
        );
    }
    echo '</div>';
}

Si vous ne trouvez pas le bon fichier de modèle, veuillez consulter l’aide-mémoire sur la hiérarchie des modèles WordPress.

Maintenant que vous avez trouvé le bon code, vous pouvez ajouter l’extrait suivant :

// Get the IDs of categories
    $categories = get_the_category();
    $child_cat_ID = array(); // Array to store child category IDs

    foreach( $categories as $category ) {
        // Check if the category has a parent (i.e., it's a child category)
        if ( $category->parent > 0 ) {
            $child_cat_ID[] = $category->term_id; // Store the child category ID
        }
    }

    if ( !empty($child_cat_ID) ) {
        $output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' );
        foreach($child_cat_ID as $cat_id) {
            $cat_link = get_category_link($cat_id);
            $cat_name = get_cat_name($cat_id);
            $output .= '<a href="' . esc_url($cat_link) . '">' . esc_html($cat_name) . '</a>';
        }
        $output .= '</span>'; // Close the span tag after the loop
        echo $output; // Echo the entire output

Si vous utilisez le thème Twenty Twenty-One, alors vous devez ajouter le code ci-dessus en remplaçant ceux qui se trouvent entre ces lignes :

if ( has_category() || has_tag() ) {
    echo '<div class="post-taxonomies">';
// Replace the code in between these lines
}
    echo '</div>';
}

Voici à quoi il devrait ressembler :

Editing a theme file to display only child categories

Lorsque vous avez terminé, enregistrez vos modifications, puis téléversez le fichier sur votre serveur web hébergeur.

Maintenant, vous devez visiter une publication qui a une ou plusieurs catégories enfants. Vous verrez que la catégorie mère est masquée et que WordPress affiche uniquement les catégories enfants.

Nous espérons que cet article vous a aidé à apprendre comment afficher uniquement la catégorie enfant dans vos publications WordPress. Ensuite, vous voudrez peut-être consulter notre guide sur la façon de gagner de l’argent en ligne en bloguant avec WordPress ou nos choix d’experts pour les meilleures extensions et outils SEO que vous devriez utiliser.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Divulgation : Notre contenu est soutenu par les lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons gagner une commission. Consultez comment WPBeginner est financé, pourquoi cela compte et comment vous pouvez nous soutenir. Voici notre processus éditorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

L'ultime WordPress Toolkit

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tous les professionnels devraient avoir !

Reader Interactions

11 commentairesLaisser une réponse

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Mike says

    Managed it!

    foreach((get_the_category()) as $childcat) {
    $parentcat = $childcat->category_parent;
    if (cat_is_ancestor_of(10, $childcat)) {
    echo get_cat_name($parentcat);
    }
    }

  3. MIke says

    I have three main categories and this code is successfully working in my single page loop to echo the actual selected category name.
    I now want to echo the parent of the category. The complication is that I have two layers below the main category (3 levels) and I want to echo the one level parent not the top level parent. It seems easy to echo the top parent, but I haven’t seem any code to return the child level category of a grandchild category?

  4. Marian Rick says

    This is a great piece of code. Thanks a lot so far!

    For one of my projects I have to go further, and display only the lowest subcategory. So there may be three levels, (Forms -> Squares -> Big Squares). With this code all subs (Squares -> Big Squares) are displayed. How can I tell this code to repeat the process till only the last child is found and displayed?

    If you’ve got any solutions for that you are my heroes once again! Keep up your great work and blog!

    • Editorial Staff says

      If you are trying to display a list of all child categories, then use wp_list_categories() function. It has parameters that allow you to list only child categories or only parent categories. But that doesn’t work for the case that we are talking about in this article.

      Administrateur

  5. Keith Davis says

    Great snippets of info from you guys.
    I really have to start to get into this PHP.

    Great site boys and I notice that you are up to Pagerank 6!
    How about a couple of posts on upping your pagerank.

Laisser une réponse

Merci d'avoir choisi de laisser un commentaire. Veuillez garder à l'esprit que tous les commentaires sont modérés selon notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.