WordPress根据浏览器语言自动跳转网址的方法
我们在使用 WordPress 搭建外贸站的公司都会做多个语言的网站,例如英文和中文。同时有些外贸站站长不希望自己的网站被国内用户访问,想要国内用户跳转到不同的网址,我们可以利用浏览器语言来判断用户环境,然后自动跳转到不同的网址上面,具体方法如下。
在你的网站主题头部文件(header.php)里面插入下面的代码:
// 定义变量 lc $lc = ""; // 检查是否已经设置过 HTTP头Accept-Language信息变量 if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) $lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); // 这里截取语言编码前两位来判断,如果是中文,转向南方小强 if($lc == "zh"){ header("location: https://www.78yuanma.com"); exit(); }
考虑到很多是新手朋友,不会修改代码,所以建议安装一个 Code Snippets 插件,安装后启用插件,编辑 Example JavaScript snippet 这个片段,把上面的代码插入到/* write your JavaScript code here */的下方。
add_action('wp_head', function(){
<script>
/* write your JavaScript code here */
</script>
});
然后保存就可以激活启用代码了。
上面的代码中,你可以添加更多的语言,例如巴西、法语、葡萄牙语,然后对应跳转到不同的网址,多种语言跳转代码如下:
$lc = ""; if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ $lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); } if($lc == "pt"){ header("location: http://www.78moban.cn/"); }else if($lc == "fr"){ header("location: http://www.78moban.cn/"); exit(); }
以上方法参考料神文章,下面是常见的浏览器语言代码。
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 语句
if(条件){
if 条件成立时执行的代码;
}else if(条件){
elseif 条件成立时执行的代码;
}else{
条件不成立时执行的代码;
}
除了上面的方法外,还可以插入下面这个代码,同样也可以实现不同语言的跳转。
$lan = substr( $HTTP_ACCEPT_LANGUAGE,0,5); if($lan == "zh-cn"){ print(""); }else{ print(""); }
当然,如果你的主题有自定义设置项,你可以适用如下代码添加到主题头部自定义区域:
<script type="text/javascript"> var type = navigator.appName; if (type == "Netscape"){ var lang = navigator.language;//获取浏览器配置语言,支持非IE浏览器 }else{ var lang = navigator.userLanguage;//获取浏览器配置语言,支持IE5+ == navigator.systemLanguage }; var lang = lang.substr(0, 2);//获取浏览器配置语言前两位 if (lang == "zh"){ //window.location.replace('http://www.78moban.cn/');//中文编码时打开链接 }else if (lang == "en"){ window.location.replace('http://www.78moban.cn/en-US/'); }else{//其他语言编码时打开以下链接 window.location.replace('http://www.78moban.cn/en-US/'); }; </script>
本文链接:http://78moban.cn/post/11969.html
版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!