当前位置: 首页 > 知识库问答 >
问题:

从WooCommerce中的当前产品类别获取同级术语ID列表

邬良才
2023-03-14

我想根据当前类别ID检索术语ID列表。

目前,我正在使用以下代码:

$product_cat_items  = get_queried_object();
$product_cat_id     = $product_cat_items->term_id;
$product_cat_child  = get_term($product_cat_id, 'product_cat');
$product_cat_parent = $product_cat_child->parent;

$product_cat_related= get_terms('product_cat', array( 'parent' => $product_cat_parent, 'exclude' => $product_cat_id ));

它起作用了,我得到了一系列术语。但是问题是,我只需要术语对象的ID就可以得到这样的列表:

123,345,678

有没有办法从$product_cat_related数组中提取这样的列表?

这是当前输出:

array(2) {
  [0]=>
  object(WP_Term)#26238 (10) {
    ["term_id"]=>
    int(177)
    ["name"]=>
    string(27) "Name"
    ["slug"]=>
    string(21) "name"
    ["term_group"]=>
    int(0)
    ["term_taxonomy_id"]=>
    int(177)
    ["taxonomy"]=>
    string(11) "product_cat"
    ["description"]=>
    string(0) ""
    ["parent"]=>
    int(140)
    ["count"]=>
    int(8)
    ["filter"]=>
    string(3) "raw"
  }
  [1]=> ....
}

共有2个答案

端木兴国
2023-03-14

我在这里找到了一个解决方案:https://stackoverflow.com/a/25286095/1788961

对我来说,这段代码有效:

$idCats = array_column($product_cat_related, 'term_id');
宦源
2023-03-14

自WordPress版本4.5.0以来,分类法应该通过$args数组中的分类法参数传递(参见get_terms()留档)。
另外get_queried_object()已经给出了一个WP_Term对象对象是一个分类法术语。
您也可以使用'field'=

因此,您的代码将改为:

$current_term = get_queried_object(); // Already a WP_Term Object

if ( $current_term->parent > 0 ) {
    $siblings_ids = get_terms( array(
        'taxonomy'  => 'product_cat',
        'parent'    => $current_term->parent,
        'exclude'   => $current_term->term_id,
        'fields'    => 'ids',
    ) );

    // Get a string of coma separated terms Ids
    $siblings_list_ids = implode(',', $siblings_ids);

    // Testing output
    echo $siblings_list_ids;
}

测试和工作。

 类似资料:
  • 我目前正在处理一个WooCommerce主题,并试图在产品详细信息页面中添加一个侧栏。 我已经能够添加侧边栏(特别是这个:http://woocommerce.wp-a2z.org/oik_file/templatescontent-widget-product-php/) 现在,我正在想如何在当前选择的产品中添加一类“活动”,但似乎无法解决? 换言之,如果当前产品id等于侧栏中的产品id,我该如

  • 我使用WooCommerce插件在WordPress的一个项目,我目前正在工作。 通常,当你想买东西时(从客户的角度来看),你会将产品添加到购物车中并购买它。 问题是,我工作的客户不想使用手推车。相反,他希望客户(当他们点击产品时)进入一个页面,在那里他们需要填写他们的名字、电子邮件地址等。并发送一封电子邮件请求购买特定的产品。 但是我遇到了一点小麻烦。创建表单并发送电子邮件不是问题,但我需要将当

  • 我试图通过WoodPress主题中的一个函数从WooCommerce获取产品类别 上面的代码返回一些产品,但是产品类别。 当我包括

  • 我已经为“产品”帖子类型注册了两个分类法。称他们为帕乌品牌 我已经创建了一个前端表单来编辑通过URL参数获取产品数据的产品。 我需要的是获得 以下仅适用于单个产品页面,因此我可以获得与产品相关的正确术语。 但如果页面不是单一产品,则为,我得到两个

  • 我试图在Woocommerce中显示当前类别下的子类别(而不是子类别等),如以下Web:http://www.qs-adhesivos.es/app/productos/productos.asp?idioma=en 例如,建筑类和密封剂类 密封胶 已经有一个存档产品。php在我的孩子主题下的woocommerce文件夹中。 已经尝试了一些代码,它适用,但这不是我想要的。

  • 我试图获取当前产品id,但它返回null; 我想在下面的功能中使用产品ID 注意,我希望在“functions.php”文件中获取产品id。 我试过了 和 但这不起作用