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

求助:WordPress自定义分类术语前端显示HTML上标标记解决方案

解决WordPress自定义分类术语上标显示问题

以下是可直接添加到主题functions.php的代码片段,针对你的需求实现「Premium Solarzaun2」中的“2”以上标形式显示:

1. 全局修改分类术语名称

这段代码会在所有获取术语名称的场景(如文章分类标签、分类列表等)中替换目标文本:

add_filter( 'term_name', 'modify_n2sproducts_term_display', 10, 3 );
function modify_n2sproducts_term_display( $name, $term, $taxonomy ) {
    // 仅针对n2sproducts分类法和指定术语
    if ( 'n2sproducts' === $taxonomy && 'Premium Solarzaun2' === $name ) {
        $name = 'Premium Solarzaun<sup>2</sup>';
    }
    return $name;
}

2. 修正分类归档页面标题

针对分类归档页面的标题(通常带有「分类:」前缀),单独处理替换:

add_filter( 'get_the_archive_title', 'modify_n2sproducts_archive_title' );
function modify_n2sproducts_archive_title( $title ) {
    // 检查当前是否为n2sproducts分类归档页面
    if ( is_tax( 'n2sproducts' ) ) {
        $title = str_replace( 'Premium Solarzaun2', 'Premium Solarzaun<sup>2</sup>', $title );
    }
    return $title;
}

3. 确保HTML标签正常输出

部分WordPress函数会自动转义HTML,添加这段代码保证上标标签不被转义:

add_filter( 'the_terms', 'allow_html_in_n2sproducts_terms', 10, 4 );
function allow_html_in_n2sproducts_terms( $term_list, $taxonomy, $before, $after ) {
    if ( 'n2sproducts' === $taxonomy ) {
        $term_list = html_entity_decode( $term_list );
    }
    return $term_list;
}

之前代码无效的原因

  • 第一段gettext过滤器:仅在文本经过WordPress翻译函数(如__())时触发,分类术语名称通常不会走这个流程,因此无法生效。
  • 第二段代码:is_taxonomy()是用来检测分类法是否存在,而非判断当前页面是否为该分类归档;同时直接替换为固定文本未考虑标题前缀,灵活性不足。

内容的提问来源于stack exchange,提问作者Wolf.Piller

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:05:29