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

WooCommerce我的账户菜单替换li为span问题求助

替换WooCommerce我的账户菜单的li标签为span标签的解决方案

你当前使用的woocommerce_account_menu_items过滤器只能修改菜单项的内部内容,无法控制外层的<li>标签——这些<li>是WooCommerce渲染菜单时自动生成的,所以你写的代码只会把自定义内容塞进自动生成的<li>里,造成嵌套问题。

要直接替换外层的<li>为<span>,需要使用woocommerce_account_navigation_item过滤器,它能直接修改每个导航项的完整HTML结构:

// 替换WooCommerce我的账户导航项的li标签为span
add_filter( 'woocommerce_account_navigation_item', 'custom_replace_account_menu_li_with_span', 10, 4 );

function custom_replace_account_menu_li_with_span( $item_html, $item, $permalink, $is_active ) {
    // 替换<li>标签为<span>,保留原有类名和属性
    $item_html = str_replace( array( '<li', '</li>' ), array( '<span', '</span>' ), $item_html );
    
    // 可选:给span添加自定义类或调整属性
    // $item_html = str_replace( 'class="', 'class="custom-account-span ', $item_html );
    
    return $item_html;
}

代码说明:

  • woocommerce_account_navigation_item过滤器提供4个参数:已生成的项HTML、菜单项数据、项的永久链接、是否为当前激活状态。
  • 用str_replace直接替换标签,保留原有的状态类(比如is-active)和其他属性,确保菜单的样式和功能不受影响。
  • 如果需要自定义样式,可以在函数里额外修改HTML结构,比如添加自定义类名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:42:40