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

如何为Woocommerce自定义分类创建可点击父页面及优化面包屑

解决方案

1. 正确注册支持Woof的Benefits自定义分类

确保自定义分类参数配置正确,支持层级结构、生成合规URL,同时兼容Woocommerce与Woof插件。将以下代码添加到主题(推荐子主题)的functions.php文件中:

// 注册Benefits(Shop by Solution)自定义分类
add_action('init', 'register_shop_by_solution_taxonomy');
function register_shop_by_solution_taxonomy() {
    $labels = array(
        'name'              => __('Benefits', 'text-domain'),
        'singular_name'     => __('Benefit', 'text-domain'),
        'search_items'      => __('Search Benefits', 'text-domain'),
        'all_items'         => __('All Benefits', 'text-domain'),
        'parent_item'       => __('Parent Benefit', 'text-domain'),
        'parent_item_colon' => __('Parent Benefit:', 'text-domain'),
        'edit_item'         => __('Edit Benefit', 'text-domain'),
        'update_item'       => __('Update Benefit', 'text-domain'),
        'add_new_item'      => __('Add New Benefit', 'text-domain'),
        'new_item_name'     => __('New Benefit Name', 'text-domain'),
        'menu_name'         => __('Shop by Solution', 'text-domain'),
        'breadcrumb_name'   => __('Shop by Solution', 'text-domain'),
    );

    $args = array(
        'labels'            => $labels,
        'hierarchical'      => true, // 支持父子分类结构,无需层级可设为false
        'public'            => true,
        'show_ui'           => true,
        'show_admin_column' => true,
        'show_in_nav_menus' => true,
        'show_tagcloud'     => false,
        'show_in_rest'      => true,
        'rewrite'           => array(
            'slug'         => 'shop-by-solution',
            'with_front'   => false, // 避免与商店前缀冲突
            'hierarchical' => true, // 生成子分类URL:/shop-by-solution/energy/
        ),
        'query_var'         => true,
    );

    register_taxonomy('shop-by-solution', 'product', $args);
}

2. 修复面包屑中父项的可点击链接

Woocommerce默认不会为自定义分类的顶级项生成正确跳转链接,通过钩子修改面包屑数据:

// 修复Shop by Solution面包屑链接
add_filter('woocommerce_get_breadcrumb', 'fix_shop_by_solution_breadcrumb_link', 10, 2);
function fix_shop_by_solution_breadcrumb_link($crumbs, $breadcrumb) {
    foreach ($crumbs as $key => $crumb) {
        list($crumb_text, $crumb_link) = $crumb;
        // 匹配面包屑中的"Shop by Solution"文本(根据你的标签名调整)
        if ($crumb_text === __('Shop by Solution', 'text-domain')) {
            // 设置指向所有Benefit分类的链接
            $crumbs[$key][1] = get_term_link('shop-by-solution', 'shop-by-solution');
            break;
        }
    }
    return $crumbs;
}

3. 强制Woof插件支持该分类

如果Woof设置中未自动识别该分类,添加以下代码让Woof启用它:

// 让Woof插件支持Shop by Solution分类
add_filter('woof_taxonomies', 'add_shop_by_solution_to_woof');
function add_shop_by_solution_to_woof($taxonomies) {
    $taxonomies['shop-by-solution'] = array(
        'title' => __('Benefits', 'text-domain'),
        'show' => 1,
        'view' => 'checkboxes', // 可按需调整显示方式(dropdown/radio等)
        'hierarchical' => 1,
        'show_count' => 0,
        'hide_empty' => 1,
    );
    return $taxonomies;
}

操作步骤

  1. 将上述代码粘贴到当前主题(推荐子主题)的functions.php文件中
  2. 进入WP后台 → 设置 → 固定链接,点击「保存更改」刷新重写规则
  3. 打开Woof插件设置页面,确认「Benefits(Shop by Solution)」分类已启用(若用了第三步代码会自动开启)
  4. 现在可以在产品编辑页为单个产品添加多个Benefit项,子分类页面(如/shop-by-solution/energy/)的面包屑中,「Shop by Solution」会正确指向/shop-by-solution/页面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:07:42