使用PHP和Wordpress进行语言重定向

时间:2015-06-18 06:12:35

标签: php wordpress redirect browser

我需要为我正在处理的WordPress多站点创建语言重定向功能。此重定向将取决于用户的浏览器设置。我想我可以在头文件中创建一个会话,以便在访问该站点时,该站点检查是否已经设置了会话,然后相应地重定向。代码放在header.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();
  }
}

如果我跳过Header位置并输出开关案例,我可以看到浏览器语言已被提取,但没有重定向。我是在正确的轨道上还是应该采取完全不同的方法?

1 个答案:

答案 0 :(得分:0)

试试代码。使用您的域名而不是&#39; example.com&#39;

 $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();
  }
}