WordPress(WooCommerce)中如何获取页面ID而非所用模板的ID?
解决WooCommerce产品分类页面模板中获取分类ID的问题
在你的场景里,get_the_ID()返回模板ID是因为这个函数针对的是当前循环的内容ID,而你的afterheader作为模板片段被调用时,当前循环并没有指向产品分类的查询对象。要获取产品分类页面的ID,你可以用下面这些方法:
直接获取当前查询对象的ID:使用
get_queried_object_id()函数,它会返回当前页面对应查询对象的ID——在产品分类页面,这个值就是对应的产品分类(product_cat)ID。代码示例:$category_id = get_queried_object_id(); // 后续根据$category_id展示对应内容获取完整分类对象再取ID:如果需要分类的其他信息(比如名称、slug),可以先用
get_queried_object()拿到整个分类对象,再提取ID:if (is_product_category()) { $current_category = get_queried_object(); $category_id = $current_category->term_id; }
注意:建议先通过is_product_category()判断当前页面是否是产品分类页面,避免在其他页面调用时出现错误。
内容的提问来源于stack exchange,提问作者Alex Framuga
相关产品推荐
相关产品推荐

