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

如何在WooCommerce商品分类名称中添加换行(以|为分隔标识)

解决WooCommerce商品分类名称换行显示的问题

嘿,我来帮你搞定这个分类名称换行的需求!你想要把用|分隔的英文和中文分类名分成两行显示,其实用WooCommerce的钩子就能轻松实现,不用手动改每个分类的名称,下面给你两种靠谱的方案:

方案一:自动替换分隔符为换行(推荐)

这个方法会自动检测分类名称里的|分隔符,把它转换成HTML换行标签<br>,不管是产品页面的分类标签,还是分类归档页面的标题都能生效。

把下面的代码添加到你当前主题的functions.php文件里(注意备份主题文件哦):

// 修改产品页面上的分类名称显示
add_filter( 'woocommerce_product_category_list_item_title', 'split_category_title_by_pipe', 10, 2 );
function split_category_title_by_pipe( $title, $category ) {
    // 检查标题是否包含指定分隔符
    if ( strpos( $title, ' | ' ) !== false ) {
        // 分割成英文和中文两部分
        list( $english_part, $chinese_part ) = explode( ' | ', $title, 2 );
        // 用<br>实现换行,如果你想要英文和中文之间有空格对齐,也可以换成&nbsp;组合,但换行更直接
        $title = $english_part . '<br>' . $chinese_part;
    }
    return $title;
}

// 修改分类归档页面的标题显示
add_filter( 'get_the_archive_title', 'split_category_archive_title_by_pipe' );
function split_category_archive_title_by_pipe( $title ) {
    // 只针对产品分类归档页面生效
    if ( is_product_category() && strpos( $title, ' | ' ) !== false ) {
        // 去掉WooCommerce默认的"产品分类: "前缀(如果不需要可以删掉这行)
        $title = str_replace( '产品分类: ', '', $title );
        list( $english_part, $chinese_part ) = explode( ' | ', $title, 2 );
        $title = $english_part . '<br>' . $chinese_part;
    }
    return $title;
}

添加完代码后,你的分类名称比如North American Red Sea Cucumber | 北美红参就会自动变成英文一行,中文一行显示啦。

方案二:直接在分类名称里添加HTML换行

如果你更倾向于手动控制每个分类的换行位置,可以先让WooCommerce允许分类名称里使用<br>标签,再手动编辑分类名称。

添加下面的代码到主题functions.php:

// 允许分类名称里使用<br>标签
add_filter( 'wp_kses_allowed_html', 'allow_br_in_category_titles', 10, 2 );
function allow_br_in_category_titles( $allowed_tags, $context ) {
    if ( $context === 'term_name' || $context === 'post_title' ) {
        $allowed_tags['br'] = array();
    }
    return $allowed_tags;
}

之后你就可以在编辑分类的时候,直接把名称写成North American Red Sea Cucumber<br>北美红参,保存后就能看到换行效果了。

注意事项

  • 如果你用的是自定义主题,更新主题的时候记得把这些代码转移到子主题里,不然更新后代码会丢失哦。
  • 有些主题可能会对标题做额外的转义处理,如果发现换行没生效,可以检查主题的模板文件,确保标题输出时用了echo wp_kses_post( $title )而不是echo esc_html( $title )。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:26:46