我需要为我正在处理的WordPress多站点创建一个语言重定向功能。此重定向将取决于用户的浏览器设置。我想我可以在头文件中创建一个会话,以便在访问该站点时,站点会检查是否已设置会话,然后相应地重定向。位于标题顶部的代码.php -
$url = $_SERVER['REQUEST_URI'];
function redirect() {
$language = explode( ',', $_SERVER['HTTP_ACCEPT_LANGUAGE'] );
switch( $language[0] ) {
case 'sv':
header( 'Location: /sv/' );
break;
case 'no':
header( 'Location: /no/' );
break;
case 'da':
header( 'Location: /da/' );
break;
}
}
if ( strlen($url) < 4 ) {
session_start();
if ( !isset($_SESSION[ 'language' ]) && empty($_SESSION[ 'language' ]) ) {
$_SESSION[ 'language' ] = true;
redirect();
}
}
如果我跳过标头位置并仅输出开关大小写,我可以看到浏览器语言已获取,但没有重定向。我在这里走在正确的轨道上还是应该采取完全不同的方法?
尝试代码 . 使用您的域名而不是"example.com"。
$url = $_SERVER['REQUEST_URI'];
function redirect() {
$language = explode( ',', $_SERVER['HTTP_ACCEPT_LANGUAGE'] );
switch( $language[0] ) {
case 'sv':
wp_redirect('example.com/sv/');
exit();
break;
case 'no':
wp_redirect('example.com/no/');
exit();
break;
case 'da':
wp_redirect('example.com/da/');
exit();
break;
}
}
if ( strlen($url) < 4 ) {
session_start();
if ( !isset($_SESSION[ 'language' ]) && empty($_SESSION[ 'language' ]) ) {
$_SESSION[ 'language' ] = true;
redirect();
}
}