Pergunta

estou trabalhando em um blog wordpress tentando desenvolver um sistema multilíngue. Sempre que o usuário clica no botão de seu idioma, o parâmetro de consulta lang é adicionado ao url

Ex. localhost/my-blog?lang=es

Tudo funciona. A questão é que eu tenho o menu principal do blog que contém links para diferentes seções do site que usam o wordpress bloginfo ('url') :

Ex. <a href="<?php bloginfo('url');?>/contact-us">contact us</a>

E sempre que o usuário escolher seu idioma na página inicial e clicar em "entre em contato"

ele recebeu este link errado:

localhost/my-blog?lang=es/contact-us

qual função wordpress você usa para esse tipo de coisas?

obrigado

Luca

Foi útil?

Solução

Acho que esse tipo de consulta de URL causará problemas no futuro, por que não se conformar com o uso de um valor de sessão ou cookie de base para armazenar a escolha do usuário,

então, dessa forma, você pode simplesmente adicionar algum código ao seu arquivo functions.php para ler o valor da sessão ou cookie e retornar o tipo de tradução?

há também este plugin xili-language

ie: functions.php

// START THE SESSION
function start_session(){
  session_start();
}
add_action('init', 'start_session', 1);

function set_lang_pref($lang_pref){       
   if(isset($_GET['lang']) && ($_GET['lang']!=''){
      $setlang = $_GET['lang'];
      switch($setlang){
         case "es" :
         $lang = "es_ES";
         $_SESSION['selectedlanguage']=$lang;
         break;
      }
   }else{
      return false;
   }

}

o código é realmente grosseiro, mas você entendeu ..? armazenar a escolha do usuário, verifique essa escolha,

se tiver sido definido, use esse valor como a preferência de idioma no site ..? caso contrário, basta reverter para o padrão ..

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top