You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改WooCommerce父分类垂直下拉菜单脚本以隐藏子分类?

只在WooCommerce分类下拉中显示父分类的修改方案

嘿,这个问题我经常碰到!要解决下拉菜单里子分类太多太繁杂的问题,核心就是在获取分类数据的时候,只筛选出顶级父分类(也就是没有上级分类的那些)。我根据常见的两种脚本情况给你具体修改方法:

情况1:你的脚本用get_terms()获取分类

如果现有代码是用WordPress原生的get_terms()函数拉取产品分类,你只需要在参数里加一行'parent' => 0,就能只拿到父分类:

原来的代码大概是这样:

$product_categories = get_terms( 'product_cat', array(
    'hide_empty' => true, // 可选:隐藏没有产品的空分类
) );

修改后:

$product_categories = get_terms( 'product_cat', array(
    'hide_empty' => true,
    'parent'     => 0, // 关键参数:只获取父ID为0的顶级分类
) );

情况2:你的脚本用WooCommerce专属函数wc_get_product_categories()

如果是用WooCommerce提供的wc_get_product_categories(),同样添加parent参数即可:

原代码示例:

$product_categories = wc_get_product_categories( array(
    'hide_empty' => true,
) );

修改后:

$product_categories = wc_get_product_categories( array(
    'hide_empty' => true,
    'parent'     => 0, // 只保留顶级父分类
) );

额外:修改WooCommerce默认的分类下拉(比如添加产品页面)

如果是想直接修改WooCommerce自带的分类下拉(比如后台添加产品时的分类选择框),不用改现有脚本,直接加个钩子函数就行。把这段代码放到你主题的functions.php文件里,或者自定义插件中:

add_filter( 'woocommerce_product_categories_dropdown_args', 'filter_only_parent_categories_in_woo_dropdown' );
function filter_only_parent_categories_in_woo_dropdown( $args ) {
    // 强制只显示父分类
    $args['parent'] = 0;
    return $args;
}

小提醒

如果你的现有脚本里有递归输出子分类的代码(比如用get_term_children()循环展示子分类的逻辑),记得把那块代码删掉,不然就算只获取了父分类,还是可能会把子分类带出来哦。

内容的提问来源于stack exchange,提问作者Anthony Combs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:28:00