WordPress+WooCommerce中通过名称获取产品分类slug,代码返回空求解决
问题分析与解决
你的代码核心问题是混淆了产品分类和产品标签的 taxonomy 参数:
- 你要获取的是产品分类的slug,但代码里用了
product_tag(这是WooCommerce的产品标签 taxonomy),正确的参数应该是product_cat。
另外还有两个需要注意的细节:
get_term_by对名称的匹配是大小写敏感的,如果你的分类名称是Clothes而非全小写的clothes,也会匹配失败。- 直接访问
$tagname->slug存在风险——如果找不到对应分类,$tagname会返回false,这时会触发PHP错误,建议先做存在性判断。
修正后的代码:
$catname = 'clothes'; // 替换为正确的 taxonomy:product_cat $category = get_term_by('name', $catname, 'product_cat'); // 先判断是否找到分类,再获取slug if ($category && !is_wp_error($category)) { $catslug = $category->slug; // 此处可使用获取到的slug } else { // 处理找不到分类的场景,比如设置默认值或提示 $catslug = ''; }
如果你的需求确实是获取产品标签的slug,那需要检查两点:
- 确认后台存在名称为
clothes的产品标签 - 检查名称的大小写是否与后台完全一致
内容的提问来源于stack exchange,提问作者Vlad Sokokov
相关产品推荐
相关产品推荐

