WordPress临时多语言站点Logo跳转问题:按URL路径跳转对应首页
修复WordPress多语言Logo跳转对应语言首页的问题
问题排查
你的原有代码失效大概率是两个原因:一是根目录下split('/')[1]会得到空值,导致跳转URL异常;二是变量作用域问题,const firstpath可能无法被点击事件正确访问。
修复方案1:封装全局函数(易维护)
<script> function getLangHomeUrl() { // 拆分路径并过滤空字符串,处理根目录场景 const pathSegments = location.pathname.split('/').filter(segment => segment.trim() !== ''); const langCode = pathSegments[0]; // 只允许指定语言标识,避免非法路径跳转 return langCode && ['en', 'se'].includes(langCode) ? `/${langCode}/` : '/'; } </script> <a href="/" onclick="location.href = getLangHomeUrl(); return false;"> <img src="你的Logo图片地址" alt="站点Logo" /> </a>
修复方案2:内联逻辑(更简洁)
不想单独写函数的话,直接把逻辑写在点击事件里:
<a href="/" onclick=" const lang = location.pathname.split('/').filter(p => p)[0]; location.href = (lang && ['en', 'se'].includes(lang)) ? `/${lang}/` : '/'; return false; "> <img src="你的Logo图片地址" alt="站点Logo" /> </a>
关键优化说明
- 新增空路径过滤,避免根目录下跳转URL出现
//的异常情况 - 加入语言白名单判断,防止其他非法路径段导致错误跳转
- 逻辑内联或全局封装,彻底解决变量作用域问题
- 确保跳转URL带有结尾斜杠,和你的目录结构完全匹配
内容的提问来源于stack exchange,提问作者Gibnib
相关产品推荐
相关产品推荐

