通过其 slug 获取 WooCommerce 产品类别的 id

Posted

技术标签:

【中文标题】通过其 slug 获取 WooCommerce 产品类别的 id【英文标题】:Get the id of a WooCommerce product category by its name or slug 【发布时间】:2016-09-27 00:54:34 【问题描述】:

我有一个想要分配给某些页面的 wp 模板。模板将即。显示与页面名称本身具有相同主类别名称的所有 WooCommerce 产品。

到目前为止,我已尝试使用此代码,但没有好的输出:

$idObj = get_category_by_slug($pagename);
$id = $idObj->term_id;
echo ": ". $id;

不幸的是,回显没有显示任何内容。 回显 $pagename 有效,并返回给我页面的 slug。

有什么好的方法可以完成这项工作吗?

【问题讨论】:

【参考方案1】:

如果有自定义分类,建议改用get_term_by()

$category = get_term_by( 'slug', $pagename, 'product_cat' );
$cat_id = $category->term_id

参考:Get category ID from term slug…


要从术语名称中获取产品类别 ID,请使用:

$category = get_term_by( 'name', $pagename, 'product_cat' );
$cat_id = $category->term_id

【讨论】:

【参考方案2】:

代码似乎是正确的,尝试 var_dump 看看你从 get_category_by_slug($pagename) 得到什么

$idObj = get_category_by_slug($pagename);
var_dump($idObj);

【讨论】:

仅供参考:这是针对 Wordpress“类别”的。 WooCommerce 类别使用“product_cat”,因此您必须使用 get_term_by()

以上是关于通过其 slug 获取 WooCommerce 产品类别的 id的主要内容,如果未能解决你的问题,请参考以下文章

在产品标题下方显示 woocommerce 产品属性 slug

在 WooCommerce 存档产品页面上更改分页基础 slug

Woocommerce 定制产品 slug

从Woocommerce Link中删除“product”slug

WooCommerce 中特定产品类别的最低购物车数量

显示特定产品类别的术语或产品属性(woocommerce)