* 文章内容很有用,那就5星好评吧!😘
0 / 5 好评 5

排名:

大家好,我是Funion数字营销实战派飞小优,目前在运营网站的过程中,针对多级菜单需求有很强的刚需,具体需要输出到不同的页面中,那如何实现多层级导航菜单系统呢? 如果您的企业正计划快速搭建高转化率站点,可以参考 Funion 的 外贸独立站建站与询盘转化方案

多层级导航菜单系统需求描述

实现一个多层级导航菜单系统,要求:

  • 支持无限层级嵌套
  • 父级菜单与子菜单样式独立控制
  • 悬停交互效果(背景色变化+文字颜色变化)

前端HTML的结构

<!-- 一级菜单 -->
<div class="nav-box-cont">
  <div class="dropdown-left-nav-box">
    <div class="dropdown-left has-children">
      <a href="#">
        <div class="dropdown-left-nav-cont"> <!-- 影响区 -->
          <img class="menu-icon" src="...">
          <span class="menu-title">主菜单</span>
        </div>
      </a>
      
      <!-- 二级菜单容器 -->
      <div class="dropdown-left-content">
        <div class="submenu">
          <!-- 二级菜单项 -->
          <div class="dropdown-left-nav-cont"> <!-- 独立区 -->
            <!-- 可继续嵌套三级 -->
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

参考前端案例

前端参考的是某宝的这种,当然我们需要在基础结构上做差异化处理

WP实现一个层级折叠菜单功能扩展支持无线层级嵌套解决方案实操

实现方案思路

采用WP的原生Menu Walker类来实现。关于 WordPress 中的 Walker 类,这是一个非常重要的核心概念,专门用于处理层级化数据的遍历和渲染。以下是详细的专业解释:

Walker 类核心定义

Walker 是 WordPress 提供的抽象类(位于 wp-includes/class-wp-walker.php),用于:

  • 递归处理层级数据结构(如菜单、分类、页面)
  • 提供标准化的遍历接口
  • 自定义输出 HTML 的结构

典型应用场景

应用场景对应 Walker 类功能说明
导航菜单Walker_Nav_Menu渲染 wp_nav_menu() 的输出
分类目录Walker_Category生成分类列表
页面列表Walker_Page生成 hierarchical pages
评论列表Walker_Comment嵌套评论的渲染

具体实现步骤

采用子主题进行不是,直接在子主题functions.php注册,然后写出配套的css来实现。

先注册自定义菜单实例

/**
 * 自定义下拉菜单Walker类
 */
class Custom_Dropdown_Walker extends Walker_Nav_Menu {
    public function start_lvl(&$output, $depth = 0, $args = null) {
        $output .= '<div class="dropdown-left-content"><div class="submenu">';
    }
    
    public function end_lvl(&$output, $depth = 0, $args = null) {
        $output .= '</div></div>';
    }
    
    public function start_el(&$output, $item, $depth = 0, $args = null, $id = 0) {
        $classes = empty($item->classes) ? array() : (array) $item->classes;
        $class_names = join(' ', apply_filters('nav_menu_css_class', array_filter($classes), $item, $args, $depth));
        
        $class_names .= ' dropdown-left';
        if (in_array('menu-item-has-children', $classes)) {
            $class_names .= ' has-children';
        }
        
        $output .= "<div class='dropdown-left-nav-box'>";
        $output .= "<div class='" . esc_attr($class_names) . "'>";
        
        // 菜单项图片逻辑重构
        $image_url = get_post_meta($item->ID, '_menu_item_image_url', true);
        
        // 父级菜单结构(depth=0)
        if ($depth === 0) {
            // 显示可点击的父级菜单图片
            $output .= "<a href='" . esc_url($item->url) . "' class='dropdown-left-nav-link'>";
            if ($image_url) {
                $output .= "<div class='dropdown-left-nav-img'>";
                $output .= "<img src='" . esc_url($image_url) . "' alt='" . esc_attr($item->title) . "'>";
                $output .= "</div>";
            }
            $output .= "<div class='dropdown-left-nav-cont'>";
            $output .= "<div class='dropdown-left-nav-tit'>" . esc_html($item->title) . "</div>";
            if (!empty($item->description)) {
                $output .= "<span class='dropdown-left-text-des'>" . esc_html($item->description) . "</span>";
            }
            $output .= "</div>";
            $output .= "</a>";
        } 
        // 子菜单结构(depth>0)
        else {
            $output .= "<div class='dropdown-left-nav-cont'>";
            $output .= "<a href='" . esc_url($item->url) . "' class='submenu-item'>";
            
            // 保留子菜单左侧图片
            if ($image_url) {
                $output .= "<div class='submenu-item-left'>";
                $output .= "<img src='" . esc_url($image_url) . "' alt='" . esc_attr($item->title) . "'>";
                $output .= "</div>";
            } else {
                $output .= "<div class='submenu-item-left'>";
                $output .= "<img src='" . esc_url(get_template_directory_uri() . '/images/default-menu-icon.png') . "' alt='默认图标'>";
                $output .= "</div>";
            }
            
            $output .= "<div class='submenu-item-right'>";
            $output .= "<span class='submenu-item-title'>" . esc_html($item->title) . "</span>";
            if (!empty($item->description)) {
                $output .= "<span class='submenu-item-desc'>" . esc_html($item->description) . "</span>";
            }
            $output .= "</div>";
            $output .= "</a>";
            $output .= "</div>";
        }
    }
    
    public function end_el(&$output, $item, $depth = 0, $args = null) {
        $output .= "</div></div>";
    }
}

撰写对应css文件

css自己去摸索,每个项目不一样,因此就不贴代码,请看截图

折叠菜单的css部分内容

另外需要注意一点的是这个菜单并不是直接输出到导航位置,它是针对页面或者指定的地方输出,所以你前期需要考虑是以短码来输出还是其他的技术方式,适合自己的就好,因此你需要把这个短码输出功能也要集成到functions.php或者你的组件化目录中,最后你在以短码结构[XXX menu] 插入页面中(我这里只是讲思路,并不适合直接照搬的)因此你会看到Ui后台中菜单的基本配置,如:

菜单配置项
配置菜单字段

那最后将你的短代码输出到任意页面,比如输出到首页,如

插入短代码功能

前端验证

最后在前端查看下你的新菜单样式,如

默认折叠菜单
展开后的折叠菜单无缝对接

所以这是对多层级导航菜单系统的差异化扩展,主要是针对CSS做了调整,整体架构类似某宝的折叠菜单,总之万变不离其宗,喜欢折腾的大家可以去尝试下!

提交需求表单



    你可能会感兴趣

    • 外贸建站多少钱

      外贸建站多少钱?2026 年 5 类报价区间与 9 项隐性成本拆解

      外贸建站报价从 2,000 元到 5 万元都有,差的不是页面数量。一次性开发费只是三笔账里的第一笔,另外两笔——年度固定成本和内容投入——报价单上通常不写。本文把 5 类供应商的交付物、9 项隐性成本和真实的 2–4 周排期拆开,附 4 张对照表。 对站点速度和询盘转化有硬指标要求的企业,建议了解 WordPress外贸建站方案。 一句话回答:外贸建站 = 一次性开发费(2,000–50,000 元)+ 年度固定成本(800–4,000 元/年)+ 持续内容投入(3,000–30,000 元/月…

      营销实战 2026年 9月 18日
    • 工业品外贸建站

      工业品外贸建站怎么做?B2B 高转化独立站架构与落地拆解

      B2B 工业品外贸和消费品的出海逻辑是两件事,用同一套方法做,结果一定是一边勉强能用、一边完全没用。 正在对比建站方案的企业,可以参考这份 B2B外贸独立站搭建指南,覆盖选型到上线的完整路径。 差别在哪?一个卖消费品的站,买家看的是图片、价格、评价,决策在几分钟内完成。一个卖工业阀门或精密结构件的站,买家看的是压力等级、材质牌号、认证编号、公差范围,决策周期动辄三到六个月,中间要过工程师、采购、质量三道关。 所以工业品外贸建站的核心不是”做得好看”,是能不能让一个陌生工程…

      营销实战 2026年 9月 11日
    • 外贸建站避坑指南

      2026 外贸建站避坑指南:B2B 独立站搭建的 8 个常见误区

      先给一个不太好听的数字。制造业 B2B 网站的访客到线索转化率,行业平均值是 2.2%(First Page Sage);但如果只看”提交 RFQ 询盘”这一个动作,多数制造商网站远低于 1%。也就是说,一千个进来的人里,真正留下联系方式的不到十个。 如果您的企业正计划快速搭建高转化率站点,可以参考 Funion 的 外贸独立站建站与询盘转化方案。 这个数字基本解释了为什么那么多外贸站做完就变成摆设。不是没流量,也不是设计差,是几处关键环节在验收时没人检查、上线后没人负责…

      营销实战 2026年 9月 9日
    • 外贸建站系统选择

      外贸建站用什么系统好?WordPress vs SaaS 平台 9 维度实测对比

      如果你正在问”外贸建站用什么系统好”,大概率已经问过三家建站公司,拿到了三份报价,从八千到八万都有,说辞却差不多。这篇不重复那些说辞。选外贸建站系统这件事,我把它拆成 9 个可以当场验证的维度,每个维度给具体阈值,你拿去问任何一家服务商,看他们敢不敢答。 针对询盘转化偏低的独立站,我们梳理了 以询盘为核心的外贸建站服务,从架构到转化全链路重构。 先说我的立场,免得你读到一半才发现问题:我做的多数是 WordPress 外贸建站项目,也接过 Shopify 迁移到 Word…

      营销实战 2026年 9月 7日
    • 外贸建站服务器怎么选?2026海外主机配置清单

      外贸建站服务器怎么选?2026海外主机配置清单

      服务器是外贸建站里最容易花冤枉钱的一环,而且两个方向都常见:有客户用着 5 美元/月的共享主机,网站在美国打开要 6 秒,流量来了也留不住;也有客户一上来就买 200 美元/月的独立服务器,站点日均访客不到 500,多花的钱全在待机。选服务器其实就三件事:放哪、什么配置、带宽怎么算。 对站点速度和询盘转化有硬指标要求的企业,建议了解 WordPress外贸建站方案。 这篇按 2026 年的行情把这三件事讲透,文末有可以直接照抄的配置清单。 位置:只看客户在哪,别看你在哪 先纠正一个普遍误区。很多…

      营销实战 2026年 9月 2日
    • 外贸建站用 Shopify 还是 WordPress?从询盘转化角度说清楚

      外贸建站用 Shopify 还是 WordPress?从询盘转化角度说清楚

      “用 Shopify 还是 WordPress?”这是外贸建站领域被问得第二多的问题,排第一的是”多少钱”。网上对比这两个平台的文章很多,但大部分站在”开店”的角度比:模板好不好看、后台好不好用、付款方式接了多少。这类对比对外贸 B2B 站基本是浪费时间——因为 B2B 站的转化终点不是”下单付款”,是”留下询盘”。评价标准一换,结论全变。 对站点速度和询盘转化有硬指标要求的企…

      营销实战 2026年 8月 31日
    • 网站上线后的首要任务

      外贸独立站上线后第一年该做什么?一张时间表讲清楚

      外贸独立站上线那天,很多老板松一口气,觉得最难的部分过去了。实际上最难的部分才刚开始。上线只是把站挂到了互联网上,Google 还不知道你是谁、你卖什么、值不值得给你流量。从上线到稳定出询盘,正常要 6 到 12 个月。这期间做什么、先做什么后做什么、什么时候该急什么时候不该急,直接决定这 12 个月是有效积累还是白等。 对站点速度和询盘转化有硬指标要求的企业,建议了解 WordPress外贸建站方案。 这篇把第一年拆成四个阶段,每个阶段给你明确的动作清单和时间节点。 第 1-3 月:基建期——…

      营销实战 2026年 8月 28日
    • 外贸建站自己搭还是找人做?算完这笔账再决定
      推荐

      外贸建站自己搭还是找人做?算完这笔账再决定

      “能不能自己建个外贸站?”这个问题我每个月至少被问三次。问的人分两类:一类是预算紧,想省钱;一类是有点技术底子,觉得自己搞更可控。两类人的出发点都合理。但真正决定要不要自己建,不是看你”会不会”,是看你”有没有那个时间持续折腾”。这个区别很关键,后面会讲为什么。先说结论:能自己建,但绝大多数外贸人不应该自己建。不是能力问题,是投入产出比问题。下面把这笔账算明白。 如果您的企业正计划快速搭建高转化率站点,可以参考 Funion…

      营销实战 2026年 8月 26日
    • 外贸建站公司怎么选?2026年6个判断标准与避坑清单
      热门

      外贸建站公司怎么选?6个判断标准帮你避开90%的坑

      选外贸建站公司,是很多外贸老板踩过的最大一个坑。不是网站做得丑,也不是钱花多了,而是花了钱、等了两个月,最后拿到一个”能看不能赚”的站——上线三个月没有收录,想改产品结构改不动,想换公司发现域名主机都在对方手里。这时候再重做,时间成本比金钱成本贵得多。 如果您的企业正计划快速搭建高转化率站点,可以参考 Funion 的 外贸独立站建站与询盘转化方案。 这篇文章不推荐任何一家公司,只给判断标准。学会这 6 条,你自己就能筛掉 90% 不靠谱的候选人。 为什么不能只看案例和价…

      营销实战 2026年 8月 24日
    • 2026年外贸建站多少钱?费用构成、市场报价与避坑清单
      推荐

      2026年外贸建站多少钱?费用构成、市场报价与避坑清单

      “外贸建站多少钱”是每个准备做独立站的人都会问的问题,也是网上答案最混乱的问题。有人告诉你 3,000 块就能搞定,有人报价 80,000 还觉得自己亏了。两个报价都是真的,区别在于你拿到手的东西完全不是一回事。这篇文章把费用拆开讲清楚:市场报价分几档、钱具体花在哪、为什么价差能到 10 倍,以及报价单上哪些坑必须提前避开。 正在对比建站方案的企业,可以参考这份 B2B外贸独立站搭建指南,覆盖选型到上线的完整路径。 先解释一个现象:为什么”外贸建站多少钱&#8…

      营销实战 2026年 8月 21日
    售前
    微信

    扫码了解更多服务

    qr

    1对1专家沟通

    小程序

    扫码体验小程序

    funion_xcx

    返回顶部