web-dev-qa-db-fra.com

Détecter si une page est une page de sous-catégorie de produit?

Comment détecter si la page en cours est une page de sous-catégorie de produit?

J'ai essayé avec ce qui suit, mais le résultat sera toujours "NON"

function is_subcategory($category = null) {
    if (is_category()) {
        if (null != $category){
            $cat = get_category($category);
        }else{
            $cat = get_category(get_query_var('cat'),false);
        }
        if ($cat->parent == 0 ){
            return false;
        }else{
            return true;
        }
    }
    return false;
}

if (is_subcategory()){
    echo "YES";
}else{
    echo "NO";
}
2
user1231561

is_category() vérifie uniquement la catégorie de publication intégrée. Les catégories de produits sont des taxonomies personnalisées. Vous devez donc utiliser is_tax() au lieu de is_category() et get_term() au lieu de get_category().

Vérifiez cet exemple: -

function is_subcategory($cat_id = null) {
    if (is_tax('product_cat')) {

        if (empty($cat_id)){
            $cat_id = get_queried_object_id();
        }

        $cat = get_term(get_queried_object_id(), 'product_cat');
        if ( empty($cat->parent) ){
            return false;
        }else{
            return true;
        }
    }
    return false;
}

Aussi côté sûr au lieu de get_query_var(), utilisez get_queried_object_id()

5
Sumit