如何获取当前的 WooCommerce 产品类别

已发表: 2021-05-25

WooCommerce 获取当前产品类别 在这篇文章中,我与您分享 WooCommerce 获取当前产品类别代码片段,并解释如何使用此代码获取当前产品类别。

如果您是 WooCommerce 开发人员或只是将 WooCommerce 自定义为普通用户,那么从WooCommerce 数据库获取当前产品类别的能力可以帮助您为您的产品创建各种显示选项。

当您想要创建特定的 WooCommerce 客户体验功能时,您还可以获得当前产品类别,例如基于当前类别的结账后 WooCommerce 重定向

我在上一篇关于如何获取 WooCommerce 当前产品类别名称的教程中演示了这一点。

WooCommerce 获取当前产品类别

首先,我假设您了解 WooCommerce 开发的方式,并且您只是在寻找一个快速的代码片段来获取当前的产品类别。

如果你是一个完整的初学者,你可能想在这里查看我之前分享的关于 WooCommerce 开发的 1000 多篇文章中的大部分——WooCommerce 教程。

现在让我们关注获取当前 WooCommerce 产品类别的基础知识。 首先,您需要了解 WooCommerce 产品只是自定义帖子类型——从 WordPress 开发的角​​度来看。

因此,您可以以与我们为普通 WordPress 帖子构建查询相同的方式查询它们和产品类别。

WooCommerce 产品是自定义帖子类型,将类别作为其分类法之一。

由于我们现在了解了 WooCommerce 类别如何在后台工作,我们将使用 get_the_terms() WordPress 核心函数从数据库中获取当前的 WooCommerce 产品类别。

但首先,让我们快速了解一下 get_the_terms() WordPress 函数的工作原理!

WordPress 获取当前类别的函数 – get_the_terms ()

该函数旨在简单地为我们提供我们想要的分类术语,并获得我们想要的,我们需要给这个函数一个参数。

从这个函数中得到我们想要的东西的方法是给它一个我们想要的类别的帖子的 ID。

因此,快速总结一下这个函数,接受两个参数 ID 或对象和分类名称。

在我们迷路之前,让我分享一个快速汇总表,然后通过一个简单的示例帮助您掌握此功能的工作方式!

范围描述
$post 这是此功能正常工作所必需的,它只是帖子 ID 或我们想要获取数据的对象——在这种情况下,它将是当前帖子的 ID,因为我们想要获取 WooCommerce CURRENT PRODUCT 类别
$分类这也是此功能工作所必需的,它是分类名称

WooCommerce 获取当前产品类别

WooCommerce 获取当前产品类别 假设我们现在想要获取当前产品类别,如上图所示; 我们有这个例子。

因此我们可以使用 WordPress 全局 post 对象 $post 获取当前产品 ID。 这将返回 ID 以及其他帖子数据

$post (WP_Post) 当前帖子的帖子对象。 类参考/Wp_posts 中描述的对象。

一旦我们有了 ID,我们现在可以将 ID 与分类一起传递给函数 get_the_terms(),我们将成功获得当前的产品类别。

WooCommerce 产品类别的分类是 - product_cat,因此我们现在可以将当前产品 ID 与 product_cat 一起传递,以获取与当前产品关联的所有类别。 所以我们可以用这段代码做到这一点:


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;

}

WooCommerce 逐步获取当前产品类别(3 个主要步骤)

因此,这些是我们为在 WooCommerce 中获取当前产品类别而采取的步骤:

  1. 首先获取当前产品ID
  2. 将产品 ID 和product_cat分类法作为两个参数传递给get_the_terms()函数
  3. 第 2 步返回一个包含所有详细信息的数组。 我们使用 foreach 循环遍历数据并获取类别名称或我们想要的当前产品类别的任何其他详细信息

您现在可以继续打印或在任何其他逻辑中使用类别,正如我指出的示例WooCommerce redirect after checkout based on category

我已将此代码添加到示例站点顶部的挂钩中,您可以从下图中看到该类别已成功显示: WooCommerce 获取当前产品类别

如上图所示,我添加到自定义 Storefront 主题以在 WordPress 标题上显示类别的完整代码片段如下:


add_action('wp_head', 'get_current_product_category');

function get_current_product_category(){

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;

}

结论

在这篇文章中,我们重点介绍了获取当前产品 WooCommerce 类别的分步方法。 正如您在上面的示例中所看到的,您只需要知道当前的产品 ID,就可以使用默认的 WordPress 函数来获取术语并循环访问当前的 WooCommerce 类别。

类似文章