WordPress教程

WordPress根据浏览器语言自动跳转网址的方法

阿里云

我们在使用 WordPress 搭建外贸站的公司都会做多个语言的网站,例如英文和中文。同时有些外贸站站长不希望自己的网站被国内用户访问,想要国内用户跳转到不同的网址,我们可以利用浏览器语言来判断用户环境,然后自动跳转到不同的网址上面,具体方法如下。

在你的网站主题头部文件(header.php)里面插入下面的代码:

也想出现在这里?联系我们
创客主机
  1. <?php
  2. // 定义变量 lc
  3. $lc = ""; 
  4. // 检查是否已经设置过 HTTP头Accept-Language信息变量
  5. if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
  6. $lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  7. // 这里截取语言编码前两位来判断,如果是中文,转向百度
  8. if($lc == "zh"){
  9. header("location: https://www.baidu.com"); 
  10. exit();
  11. }
  12. ?>

考虑到很多是新手朋友,不会修改代码,所以建议安装一个 Code Snippets 插件,安装后启用插件,编辑 Example JavaScript snippet 这个片段,把上面的代码插入到/* write your JavaScript code here */的下方。

然后保存就可以激活启用代码了。

上面的代码中,你可以添加更多的语言,例如巴西、法语、葡萄牙语,然后对应跳转到不同的网址,多种语言跳转代码如下:

  1. <?php
  2. $lc = ""; 
  3. if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
  4. $lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  5. if($lc == "pt"){
  6. header("location: https://blog.naibabiji.com/"); 
  7. }
  8. else if($lc == "fr"){
  9. header("location: https://blog.naibabiji.com/skill/language-redirection.html"); 
  10. exit();
  11. }
  12. ?>

以上方法参考料神文章,下面是常见的浏览器语言代码。

af 南非公用荷兰语 sq 阿尔巴尼亚语
ar-sa 阿拉伯语(沙特阿拉伯) ar-iq 阿拉伯语(伊拉克)
ar-eg 阿拉伯语(埃及) ar-ly 阿拉伯文(利比亚)
ar-dz 阿拉伯文(阿尔及利亚) ar-ma 阿拉伯语(摩洛哥)
ar-tn 阿拉伯语(突尼斯) ar-om 阿拉伯文(阿曼)
ar-ye 阿拉伯文(也门) ar-sy 阿拉伯文(叙利亚)
ar-jo 阿拉伯文(约旦) ar-lb 阿拉伯语(黎巴嫩)
ar-kw 阿拉伯文(科威特) ar-ae 阿拉伯语(阿联酋)
ar-bh 阿拉伯语(巴林) ar-qa 阿拉伯文(卡塔尔)
eu 巴斯克语 bg 保加利亚语
be 白俄罗斯语 ca 加泰罗尼亚语
zh-tw 中文(台湾) zh-cn 中文(中华人民共和国)
zh-hk 中文(香港特区) zh-sg 中文(新加坡)
hr 克罗地亚语 cs 捷克语
da 丹麦语 nl 荷兰语(标准)
nl-be 荷兰语(比利时) en 英语
en-us 英语(美国) en-gb 英语(英国)
en-au 英语(澳大利亚) en-ca 英语(加拿大)
en-nz 英语(新西兰) en-ie 英国(爱尔兰)
en-za 英语(南非) en-jm 英语(牙买加)
en 英语(加勒比海) en-bz 英语(伯利兹)
en-tt 英语(特立尼达和多巴哥) et 爱沙尼亚语
fo 法罗语 fa 波斯语
fi 芬兰语 fr 法语(标准)
fr-be 法语(比利时) fr-ca 法语(加拿大)
fr-ch 法语(瑞士) fr-lu 法语(卢森堡)
gd 盖尔语(苏格兰) ga 爱尔兰语
de 德语(标准) de-ch 德语(瑞士)
de-at 德语(奥地利) de-lu 德语(卢森堡)
de-li 德语(列支敦士登) el 希腊
he 希伯来语 hi 印地文
hu 匈牙利语 is 冰岛语
id 印度尼西亚语 it 意大利语(标准)
it-ch 意大利语(瑞士) ja 日语
ko 韩语 ko 韩文(韓文)
lv 拉脱维亚语 lt 立陶宛语
mk 马其顿语(前南马其顿) ms 马来西亚语
mt 马耳他语 no 挪威文(巴克摩)
no 挪威文(耐诺斯克) pl 波兰语
pt-br 葡萄牙语(巴西) pt 葡萄牙语(葡萄牙)
rm 里托罗曼斯文 ro 罗马尼亚语
ro-mo 罗马尼亚语(摩尔多瓦共和国) ru 俄语
ru-mo 俄罗斯(摩尔多瓦共和国) sz 萨米语(拉普语)
sr 塞尔维亚语(西里尔文) sr 塞尔维亚语(拉丁)
sk 斯洛伐克语 sl 斯洛文尼亚语
sb 索布语 es 西班牙语(西班牙)
es-mx 西班牙语(墨西哥) es-gt 西班牙语(危地马拉)
es-cr 西班牙语(哥​​斯达黎加) es-pa 西班牙语(巴拿马)
es-do 西班牙文(多米尼加共和国) es-ve 西班牙语(委内瑞拉)
es-co 西班牙语(哥​​伦比亚) es-pe 西班牙语(秘鲁)
es-ar 西班牙语(阿根廷) es-ec 西班牙语(厄瓜多尔)
es-cl 西班牙语(智利) es-uy 西班牙语(乌拉圭)
es-py 西班牙语(巴拉圭) es-bo 西班牙语(玻利维亚)
es-sv 西班牙语(萨尔瓦多) es-hn 西班牙语(洪都拉斯)
es-ni 西班牙语(尼加拉瓜) es-pr 西班牙语(波多黎各)
sx 苏图语 sv 瑞典语
sv-fi 瑞典语(芬兰) th 泰国语
ts 特松加语 tn 茨瓦纳语
tr 土耳其语 uk 乌克兰语
ur 乌尔都语 ve 文达语
vi 越南语 xh 科萨语
ji 意第绪语 zu 祖鲁语

多个语言判断是使用的 PHP – if…elseif….else 语句

  1. if (条件)
  2. {
  3.     if 条件成立时执行的代码;
  4. }
  5. elseif (条件)
  6. {
  7.     elseif 条件成立时执行的代码;
  8. }
  9. else
  10. {
  11.     条件不成立时执行的代码;
  12. }

除了上面的方法外,还可以插入下面这个代码,同样也可以实现不同语言的跳转。

  1. <?php
  2. $lan = substr($HTTP_ACCEPT_LANGUAGE,0,5);
  3. if ($lan == "zh-cn")
  4. print("<meta http-equiv='refresh' content = '0;URL = gb/index.htm'>");
  5. else
  6. print("<meta http-equiv='refresh' content = '0;URL = eng/index.htm'>");

而如果你是使用的一些翻译插件做的多语言网站,通常插件设置里面可以直接开启跳转功能。除了修改代码外,也可以通过域名解析,直接使用 ip 地址定位来直接跳转,一些高级点的 DNS 服务商都支持这个功能。

WordPress 根据浏览器语言自动跳转网址的方法

已有 483 人购买
查看演示升级 VIP立刻购买

收藏
(1)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!