如何在WordPress+Polylang中获取指定语言的首页URL?
解决Polylang多语言网站获取对应语言首页URL的问题
当然可以获取当前选中语言的首页URL啦!你遇到的home_url()始终返回英文首页的问题,是因为这个WordPress核心函数只会返回你设置的站点主URL,而Polylang的多语言首页是基于自定义页面映射的,所以得用Polylang专门提供的函数来处理。
最简单的解决方案:使用pll_home_url()函数
Polylang内置了pll_home_url()函数,专门用来获取对应语言的首页地址,用法非常简单:
不带参数时,直接返回当前活跃语言的首页URL:
// 获取当前选中语言的首页URL $current_lang_home = pll_home_url(); echo $current_lang_home;比如当前切换到法语,就会返回
https://www.example.com/fr/accueil/;切换到西班牙语则返回https://www.example.com/es/inicio/,英文状态下返回主域名https://www.example.com。如果需要指定某一种语言的首页,只需要传入对应的语言代码即可:
// 获取法语首页 $french_home = pll_home_url('fr'); // 获取西班牙语首页 $spanish_home = pll_home_url('es'); // 获取英文首页 $english_home = pll_home_url('en');
为什么home_url()不好用?
WordPress的home_url()是核心函数,它读取的是你在「设置→常规」里填写的「站点地址(URL)」,也就是你的英文首页地址,不会自动适配Polylang的多语言页面映射规则,所以切换语言后它还是会返回英文首页。
额外注意事项
确保你的Polylang设置已经正确配置了各语言的首页:在Polylang的设置页面,确认法语的首页已选择accueil页面,西班牙语的首页已选择inicio页面,这样pll_home_url()才能正确返回对应地址。
内容的提问来源于stack exchange,提问作者Computer User
相关产品推荐
相关产品推荐

