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

如何在WordPress中将子菜单从无序列表改为有序列表

替换WordPress子菜单的ul为ol(非JavaScript方案)

要修改子菜单的列表标签,核心是重写WordPress默认的菜单生成器Walker_Nav_Menu,直接从底层改变输出结构,具体步骤如下:

1. 自定义Walker类

在主题的functions.php文件(或自定义插件文件)中添加以下代码,重写生成子菜单开始和结束标签的方法:

class Custom_Walker_Nav_Menu extends Walker_Nav_Menu {
    // 生成子菜单的开始标签,替换ul为ol
    function start_lvl( &$output, $depth = 0, $args = null ) {
        $indent = str_repeat( "\t", $depth );
        $output .= "\n{$indent}<ol class=\"sub-menu\">\n";
    }

    // 生成子菜单的结束标签,对应替换为ol的闭合标签
    function end_lvl( &$output, $depth = 0, $args = null ) {
        $indent = str_repeat( "\t", $depth );
        $output .= "{$indent}</ol>\n";
    }
}

2. 调用菜单时使用自定义Walker

找到主题中调用wp_nav_menu的位置(通常在header.php里),修改参数添加walker指定自定义类:

wp_nav_menu( array(
    'theme_location' => 'primary', // 替换为你的实际菜单位置别名
    'walker' => new Custom_Walker_Nav_Menu()
) );

注意事项

  • 如果你的主题已经使用了自定义的Walker类,不需要重新写整个类,只找到其中的start_lvl和end_lvl方法,把<ul>和</ul>分别替换成<ol>和</ol>即可。
  • 该方案完全基于PHP后端生成,不会有JS方案的加载延迟或脚本失效问题,是最可靠的原生解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:37:13