使用 PHP 和 Wordpress 重定向语言



我需要为我正在处理的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();
  }
}

最新更新