Masquer certaines catégories spécifiques de WooCommerce sur le Frontend

Publié le : 7 juillet 2025. Date de dernière mise à jour : 7 juillet 2025

 

Avec ce nouveau snippet, vous allez pouvoir modifier le fil d’Ariane (breadcrumb) sur les pages produits WooCommerce et masquer certaines catégories spécifiques dans les listes de taxonomies du site public (mais pas dans l’administration). Il permet ainsi de nettoyer ou filtrer la navigation visible pour les utilisateurs, sans affecter la gestion côté admin.

Voici comment masquer certaines catégories spécifiques via un simple snippet de code à insérer dans votre thème WordPress. Une fois activé, les catégories spécifiées sont invisibles côté public (navigation, menus, filtres par catégorie…), mais restent accessibles dans le back-office WooCommerce pour l’administration des produits.

Résultat : un fil d’Ariane personnalisé, propre et sans les catégories indésirables, mais toujours fonctionnel pour la navigation SEO et UX.

1|Information

Avant d’utiliser ce snippet, assurez-vous d’avoir installé l’extension Code Snippets (gratuite) sur votre site WordPress. Si ce n’est pas le cas, vous pouvez la télécharger via le lien ci-dessous. Si vous n’avez jamais ajouté de fonctionnalité spécifique à votre site WordPress, nous vous recommandons de commencer par lire notre guide dédié (lien ci-dessous).


2|Prérequis

Voici la liste des extensions nécessaires au bon fonctionnement de ce snippet. Assurez-vous de les installer avant d’activer le snippet.

WooCommerceNécessaire pour la vente de produits virtuels sur votre site

3|Snippet

Voici le snippet à utiliser. Les commentaires à l’intérieur du code vous guideront sur le fonctionnement de ce snippet.

Assurez-vous de cocher la case « Run snippet everywhere » avant d’activer le snippet.

/** Here's how to hide specific categories using a simple code snippet that you can insert into your WordPress theme. Once activated, the specified categories will be invisible to the public (navigation, menus, category filters, etc.), but will remain accessible in the WooCommerce back office for product administration. */

<?php

add_filter(
    "woocommerce_get_breadcrumb",
    "disableBreadCrumbCategories",
    20,
    2
);

function disableBreadCrumbCategories($crumbs, $breadcrumb)
{
    if (!is_product()) {
        return $crumbs;
    }

    global $post;
    $product = wc_get_product($post->ID);
    if (!$product) {
        return $crumbs;
    }

    // Categories to Exclude from Breadcrumn
    $excl_slugs = ["cat-1", "cat-2", "cat-3"];

    // Product Categories
    $terms = get_the_terms($post->ID, "product_cat");
    if (!$terms || is_wp_error($terms)) {
        return $crumbs;
    }

    $selected_term = null;

    foreach ($terms as $term) {
        if (!in_array($term->slug, $excl_slugs)) {
            $selected_term = $term;
            break;
        }
    }

    // If all categories are excluded, do nothing
    if (!$selected_term) {
        return $crumbs;
    }

    // Rebuild Terms Hierarchy
    $hierarchy = [];
    $term_id = $selected_term->term_id;

    while ($term_id != 0) {
        $term = get_term($term_id, "product_cat");
        if (!$term || is_wp_error($term)) {
            break;
        }

        if (!in_array($term->slug, $excl_slugs)) {
            $hierarchy[] = [$term->name, get_term_link($term)];
        }

        $term_id = $term->parent;
    }

    // Reverse to get the parent category first
    $hierarchy = array_reverse($hierarchy);

    // Rebuild the Breadcrumb
    $new_crumbs = [];

    // Keep Home and Shop
    foreach ($crumbs as $crumb) {
        if (in_array($crumb[0], ["Home", "Shop"])) {
            $new_crumbs[] = $crumb;
        }
    }

    // Add Categories
    $new_crumbs = array_merge($new_crumbs, $hierarchy);

    // Add Product Name
    $last = end($crumbs);
    $new_crumbs[] = $last;

    return $new_crumbs;
}

function hideWooCommerceCategories($terms, $taxonomies, $args)
{
    if (is_admin()) {
        return $terms;
    }
    
    $excl_slugs = ["cat-1", "cat-2", "cat-3"];

    if (in_array("product_cat", (array) $taxonomies)) {
        foreach ($terms as $key => $term) {
            if ( !is_int($term) ) {
                if (in_array($term->slug, $excl_slugs)) {
                    unset($terms[$key]);
                }
            }
        }
    }

    return $terms;
}
add_filter("get_terms", "hideWooCommerceCategories", 10, 3);

Pourquoi ce code est utile ?

  • Contrôle UX/SEO : ne pas afficher des catégories techniques, internes ou redondantes.
  • Nettoyage du fil d’Ariane pour une meilleure lisibilité.
  • Réduction du bruit dans les filtres, menus ou pages d’archives côté utilisateur.

Allez plus loin

Ce type de personnalisation montre à quel point WooCommerce peut être étendu via des filtres et actions WordPress. Si vous souhaitez davantage personnaliser votre programme de fidélité, pensez à consulter la documentation WooRewards ou à faire appel à un développeur WordPress expérimenté (voir notre page de Développements sur mesure).

Nos extensions

Nous avons créé des extensions performantes et largement plébiscitées pour WooCommerce. Boostez vos ventes grâce à nos solutions

WooRewards

Découvrez l'extension de fidélité la plus puissante pour WooCommerce. Systèmes simples ou par niveaux, parrainages, réseaux sociaux, badges et succès, vous y trouverez tous les outils pour construire VOTRE programme de fidélité

En savoir plus

VIP Memberships

VIP Memberships est un outil complet de gestion d'adhésions (memberships) pour votre site WooCommerce. Vendez des abonnements à vos clients et faites les profiter d'avantages comme des prix préférentiels ou des produits exclusifs

En savoir plus

Virtual Wallet

Offrez à vos clients un portefeuille virtuel sur votre site web. Laissez-lez emmagasiner de l'argent en achetant vos produits et utiliser ce crédit lors de futurs achats. Cette extension propose aussi un outil de carte cadeaux complet

En savoir plus

Referral Codes

Gagnez de nouveaux clients grâce à cet outil complet de référencement. Que ce soit par le biais d'influenceurs ou de simples référents, récompensez les ainsi que les nouveaux clients qu'ils amènent

En savoir plus

Laissez un commentaire

Vous devez être connectés afin de publier un commentaire.