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

Woodmart主题v7.4.2更新后移动端Uber Menu无法打开求助

解决Woodmart v7.4.2移动端Uber Menu点击无响应(jQuery length报错)问题

问题根源

Woodmart v7.4.2的主题JS与Uber Menu脚本存在兼容性冲突,导致某未定义对象被调用length属性,触发Uncaught TypeError: Cannot read property 'length' of undefined错误,阻断了菜单的点击逻辑。

修复方案

1. 禁用主题自带移动端菜单脚本

进入WordPress后台 → 外观 → 自定义 → Woodmart主题设置 → 页眉设置,找到移动端菜单相关选项,关闭主题原生的移动端菜单触发脚本,仅保留Uber Menu的移动端控制逻辑。

2. 回退Uber Menu至兼容版本

若当前Uber Menu版本与Woodmart v7.4.2不兼容:

  • 先导出Uber Menu的配置备份
  • 卸载当前版本,安装此前能正常工作的版本(如官方标注兼容Woodmart v7.x的稳定版)
  • 导入备份配置后测试移动端菜单功能

3. 自定义JS修复调用错误

通过子主题覆盖冲突逻辑:

  1. 若未使用子主题,先创建并启用子主题
  2. 在子主题目录新建js/custom.js文件,添加代码:
jQuery(document).ready(function($){
    // 修复Uber Menu移动端触发的length报错
    $('.ubermenu-responsive-toggle').on('click', function(e){
        e.preventDefault();
        var $menu = $(this).closest('.ubermenu').find('.ubermenu-main');
        if(typeof $menu !== 'undefined' && $menu.length){
            $menu.toggleClass('ubermenu-active');
        }
    });
});
  1. 在子主题functions.php中添加脚本引入:
function woodmart_child_enqueue_custom_js() {
    wp_enqueue_script( 'woodmart-child-custom', get_stylesheet_directory_uri() . '/js/custom.js', array( 'jquery' ), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'woodmart_child_enqueue_custom_js', 999 );

这段代码会先检查菜单元素是否存在,再调用length属性,避免未定义报错。

4. 清除所有缓存

修复完成后,清除WordPress后台缓存、浏览器本地缓存及CDN缓存(若使用),确保新脚本生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:12:07