检测页面是否为产品子类别页面?

时间:2016-05-10 作者:user1231561

如何检测当前页面是否为产品子类别页面?

我尝试过以下内容,但它总是打印出“否”

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";
}

1 个回复
SO网友:Sumit

is_category() 仅检查内置的帖子类别。产品类别是自定义分类法。所以你需要使用is_tax() 而不是is_category()get_term() 而不是get_category().

检查此示例:-

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;
}
也是安全的一面,而不是get_query_var() 使用get_queried_object_id()