WordPress自定义头部添加现有菜单项链接后部分页面报错如何解决
WordPress自定义头部链接报错解决方案
问题根因
你的报错属于硬编码静态链接与WordPress路由规则、主题加载逻辑不匹配导致:
- /blog/是物理存在的独立文件夹,服务器会优先匹配物理目录因此访问正常;而/about-us/这类属于WordPress生成的虚拟路由,没有对应物理文件夹,规则匹配异常就会触发报错
- 你仅修改了首页front-page.php引入自定义头脚,其他页面仍走原主题加载逻辑,路由匹配后出现规则冲突或模板找不到的问题
- 你贴出的博客链接代码存在笔误,锚文本写的是
About Us而非Blog,也需要同步修正
解决方案
- 替换所有硬编码链接为WordPress原生函数生成的动态链接
不要写死href="/about-us/",改为调用官方函数生成链接:
不同类型页面对应调用不同函数:首页用<li class=""> <a class="nav-link" href="<?php echo esc_url( get_permalink( get_page_by_path( 'about-us' ) ) ); ?>">About Us</a> </li>home_url( '/' )、文章类型归档页用get_post_type_archive_link()、分类页用get_category_link(),避免域名、路径变动导致的链接失效。 - 修正服务端重写规则
Nginx站点配置需加入WordPress默认伪静态规则:
Apache环境需确认根目录下location / { try_files $uri $uri/ /index.php?$args; }.htaccess为WordPress默认伪静态配置,没有被自定义规则覆盖。 - 若需要全站生效自定义头脚,不要仅修改front-page.php,建议通过子主题替换原主题的header.php、footer.php文件,避免后续原主题更新覆盖你的修改。
- 登录WordPress后台「页面」列表,确认关于我们、联系我们等页面的slug确实为
about-us、contact-us,没有被修改为其他值。
内容的提问来源于stack exchange,提问作者Sujeevan
相关产品推荐
相关产品推荐

