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

WordPress Twenty-Twenty-Three主题下Polylang菜单异常问题求助

解决Polylang菜单不显示、前端只展示页面列表的问题

先查主题菜单注册是否合规

Polylang只认WordPress标准注册的菜单位置,直接去主题的functions.php里找有没有这段代码:

register_nav_menus( array(
    'primary' => __( 'Primary Menu', 'your-theme-text-domain' ),
    // 其他菜单位置
) );

要是没有,或者注册的菜单标识和你在主题编辑器选的对不上,Polylang根本识别不了。补全或者改对之后,去外观→菜单重新给各语言分配菜单。

核对Polylang的菜单同步设置

  1. 进语言→设置,切到菜单标签页
  2. 确保勾了同步菜单,而且每种语言都指定了对应的菜单
  3. 检查语言切换器的设置,确认你在菜单里加的语言切换器位置是对的

修复主题的菜单调用代码

要是主题前端调用菜单的方式不标准,Polylang没法替换成多语言菜单:

  • 主题必须用wp_nav_menu()调用菜单,不能直接用wp_list_pages()这种拉页面列表的函数
  • 把错误的调用改成标准写法,比如:
    wp_nav_menu( array(
        'theme_location' => 'primary', // 对应你注册的菜单位置标识
        'menu_id'        => 'primary-menu',
    ) );
    
  • 要是主题用了自定义菜单逻辑,得确保它兼容Polylang的多语言菜单过滤机制

重置菜单缓存和Polylang设置

  1. 去外观→菜单,先删掉当前关联的菜单,保存后重新创建并关联到对应语言和菜单位置
  2. 进工具→站点健康,点清除缓存;有缓存插件的话也清空插件缓存
  3. 暂时禁用其他插件,排查是不是有插件冲突导致Polylang没法正常识别菜单

解决404页面乱入的问题

前端列表里出现404页面,基本是菜单调用的fallback逻辑错了:

  • 检查wp_nav_menu()的fallback_cb参数是不是设成了wp_list_pages,有的话改成自定义回调或者直接设为false,别让它 fallback 到页面列表
  • 示例修正:
    wp_nav_menu( array(
        'theme_location' => 'primary',
        'fallback_cb'    => false, // 禁用页面列表作为 fallback
    ) );
    

内容的提问来源于stack exchange,提问作者Егор

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:32:10