[英]wordpress redirection from root domain to a subdomain
环境描述:一个Wordpress多站点,具有根站点example.com和多个子域,例如en.example.com,es.example ...
问题:如何根据浏览器的语言使用户进入正确的子域?
到目前为止发现的插件:Wordpress重定向,其描述包含以下内容:
WordPress插件,可从多站点项目的根站点重定向到特定于语言的网络站点。
请注意:此插件不允许根网站上的内容! 请仔细阅读此说明,看看它是否适合您。
看来,这个重定向插件是用于重定向到子文件夹的,我是wordpress的新手,而且很长时间以前,我已经用PHP做过一些事情,但是我想它应该没有那么复杂。
您的体系结构是错误的,除非您希望其他语言具有完全不同的设计/主题,否则WordPress多站点将不用于语言翻译,而应使用Polylang(免费)之类的插件,而您可以使用子域!
但是,只是为了回答您的问题,如果继续使用当前的多站点体系结构,您将使用以下函数:
function redirectOtherLanguages(){
if(!isReturningVisitor())
{
$domain = getDomain();
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
$newAddress = 'http://'.$lang.'.'.$domain.$_SERVER['REQUEST_URI'];
echo $newAddress; die();
header("Location: ".$newAddress);//include check session FR
}
}
function getDomain(){
$parts=explode('.', $_SERVER["SERVER_NAME"]);
$potentialSubDomain = array_shift($parts);
//print_r($parts); die();
if(!empty($parts)){
if(count($parts)>=2) return implode('.',$parts);
else return $_SERVER["SERVER_NAME"];
}
else return null;
}
//This function prevents redirecting returning users
function isReturningVisitor(){
if(empty($_COOKIE['returning_visitor']))
{
setcookie("returning", TRUE, time()+60*60*24*365); // Expires in a year
return false;
}
return true;
}
redirectOtherLanguages();
这是您将遇到的其他一些问题:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.