Pregunta

Estoy trabajando en un blog de wordpress intentando desarrollar un sistema multilenguaje. Siempre que el usuario hace clic en su botón de idioma, el parámetro de consulta lang se agrega a la URL

Ex. localhost/my-blog?lang=es

Todo funciona. El punto es que tengo el menú principal del blog que tiene enlaces a diferentes secciones del sitio que utilizan wordpress bloginfo ('url') :

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

Y siempre que el usuario elija su idioma en la página de inicio y luego haga clic en "contáctenos"

recibió este enlace incorrecto:

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

¿Qué función de wordpress usáis para este tipo de cosas?

gracias

Luca

¿Fue útil?

Solución

Creo que este tipo de consulta de URL le traerá problemas en el futuro, ¿por qué no conformarse con el uso de un valor de sesión o una cookie base para almacenar la elección de los usuarios?

Entonces, de esa manera, simplemente puede agregar un código a su archivo functions.php para leer el valor de la sesión o la cookie y devolver el tipo de traducción.

También existe este complemento xili-language

es decir: 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;
   }

}

el código es muy aproximado, pero ¿entiendes la idea ...? almacenar la elección de los usuarios, compruebe esa opción,

si se ha establecido, utilice ese valor como preferencia de idioma en el sitio ...? de lo contrario, vuelva a la configuración predeterminada ..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top