如何获取用户正在浏览的当前产品类别?
我尝试使用get_the_terms($post->ID, 'product_cat');
,但这为我提供了页面上列出的每个产品的类别。我想要获取用户正在浏览的当前类别,即当前的产品列表页。
如何获取用户正在浏览的当前产品类别?
我尝试使用get_the_terms($post->ID, 'product_cat');
,但这为我提供了页面上列出的每个产品的类别。我想要获取用户正在浏览的当前类别,即当前的产品列表页。
这是一个简短的陈述:
$wp_query->get_queried_object()->term_id;
或者$wp_query->get_queried_object()->name;
或者...
get_queried_object();
做这件事的正确方式是...
$cate = get_queried_object();
$cateID = $cate->term_id;
echo $cateID;
试一试:
global $post;
$terms = get_the_terms( $post->ID, 'product_cat' );
$nterms = get_the_terms( $post->ID, 'product_tag' );
foreach ($terms as $term ) {
$product_cat_id = $term->term_id;
$product_cat_name = $term->name;
break;
}
echo $product_cat_name;
顺便说一下,您可以创建短代码 [show_product_category_id],用于显示产品类别ID。例如,在浏览产品类别时,它将显示该ID。您可以打开主题的functions.php并添加以下内容:
add_shortcode( 'show_product_category_id', 'show_product_category_id' );
function show_product_category_id() {
$cat = get_queried_object();
$catID = $cat->term_id;
echo $catID;
}
print_r( $wp_query->get_queried_object() );
可以查看所有可用的索引,而不仅仅是term_id
。例如:echo $wp_query->get_queried_object()->name;
。请注意,这是对代码的翻译,并且不包含解释或其他任何内容。 - aequalsb