即使没有安装 Woocommerce 也可以使用 Woocommerce 产品类别

Use Woocommerce product categories even without Woocommerce installed

我有一个自定义插件,激活后会创建 WooCommerce 产品类别。我在这里使用此代码添加产品类别。

$category = array(
        'taxonomy'    => 'product_cat',
        'cat_name'    => 'Stimulants GROUP 1 (MPH Short acting, IR)',
    );

wp_insert_category( $category );

我尝试在未安装 WooCommerce 的情况下激活我的自定义插件,但它不起作用。真的不行吗?如果不行,还有其他方法吗?

自定义分类 product_cat 不属于 WooCommerce。任何插件都可以在 WordPress 中创建和使用特定类别。

因此,您编写的 wp_insert_category 函数代码将创建该分类法。

要检查它为什么不起作用,您需要通过将 WP_DEBUG 常量设置为 true 来打开调试模式。查看日志,您将能够追踪到实际原因。

不,它不会那么简单……

Important Note:
Woocommerce Product category is a custom taxonomy 'product_cat' that will only work on Woocommerce "product" custom post type, but not for other posts…

WordPress wp_insert_category() 不适用于任何自定义分类。此函数用于 Wordpress 类别...

对于 woocommerce 产品类别,您必须使用 wp_insert_term() 代替:

wp_insert_term( 'Stimulants GROUP 1 (MPH Short acting, IR)', 'product_cat' );

如果您的自定义插件是为 Woocommerce 制作的,则需要启用 Woocommerce。不要忘记产品类别仅适用于 "product" post 类型。

You can also create your own custom taxonomy 'product_cat' with this tutorial for example… But if your custom plugin needs Woocommerce, it will not solve anything.


回答您的评论:如果 WooCommerce 未激活,阻止插件激活?

您的主要插件文件应以:

开头
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

// Check if WooCommerce is active
if ( ! in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) exit; // Exit if WC not active

或者您可以查看此相关主题: How to check if a plugin (WooCommerce) is active?