woocommerce如何获得当前类别

时间:2014-06-10 10:30:57

标签: wordpress wordpress-theming woocommerce

我正在访问woocommerce上的archive-products.php以显示我的产品(就像woocommerce中的正常流程一样)。

在archive-products.php的页面上,我添加了侧边栏,其中包含我店所有的所有产品类别(有或没有产品)。我使用以下代码来执行此操作:

$taxonomy = 'product_cat';
$orderby = 'ID';
$show_count = 0;      // 1 for yes, 0 for no
$pad_counts = 0;      // 1 for yes, 0 for no
$hierarchical = 1;      // 1 for yes, 0 for no
$title = '<h2>' . _x('Our Products', 'mfarma') . '</h2>';
$hide_empty = 0;

$args = array(
    'taxonomy' => $taxonomy,
    'orderby' => $orderby,
    'order' => 'ASC',
    'show_count' => $show_count,
    'pad_counts' => $pad_counts,
    'hierarchical' => $hierarchical,
    'title_li' => $title,
    'hide_empty' => $hide_empty
);
?>

<ul>
    <?php wp_list_categories($args); ?>
</ul>

现在页面的左侧有上面的侧边栏,右侧有产品。在每个产品类别中,我添加了一个带有html格式的小描述,我希望在用户单击该类别时显示该格式。根据woocommerce,当你去特定类别(在我的情况下,http://localhost/product-category/mycategory)时,它仍然是archive-products.php。

我试图从点击的链接中获取term_id,但是循环(以及全局$ post)将我指向列表的第一个产品而不是我需要的类别。因此,如果某个类别的产品为零,我就无法获得term ID。如何从archive-products.php获取该术语ID?

2 个答案:

答案 0 :(得分:13)

找到其他的答案,但它也适用于我的问题。

add_action('woocommerce_archive_description', 'woocommerce_category_description', 2);

function woocommerce_category_description() {
    if (is_product_category()) {
        global $wp_query;
        $cat = $wp_query->get_queried_object();
        echo "CAT IS:".print_r($cat,true); // the category needed.
    }
}

答案 1 :(得分:4)

你可以做得更简单:
打印当前类别:

single_cat_title(); // this prints your current category

获取当前类别字符串:

single_cat_title('', false); // this returns your current category
echo single_cat_title('', false); // for print current category