Frage

Ich arbeite an einem WordPress-Blog und versuche, ein mehrsprachiges System zu entwickeln. Immer wenn der Benutzer auf seine Sprachschaltfläche klickt, wird der lang-Abfrageparameter zur URL hinzugefügt

Ex. localhost/my-blog?lang=es

Alles funktioniert. Der Punkt ist, dass ich das Blog-Hauptmenü habe, das Links zu verschiedenen Abschnitten der Site enthält, die das WordPress bloginfo ('url') verwenden:

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

Und wann immer der Benutzer seine Sprache auf der Startseite auswählt und dann auf "Kontakt" klickt

er erhält diesen falschen Link:

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

Welche WordPress-Funktion verwenden Sie für diese Art von Dingen?

danke

Luca

War es hilfreich?

Lösung

Ich denke, diese Art der URL-Abfrage wird Sie in Zukunft in Schwierigkeiten bringen. Warum sollten Sie nicht entweder einen Sitzungswert oder ein Basis-Cookie verwenden, um die Auswahl des Benutzers zu speichern?

Auf diese Weise können Sie Ihrer Datei functions.php einfach Code hinzufügen, um den Sitzungswert oder das Cookie zu lesen und den Übersetzungstyp zurückzugeben?

Es gibt auch dieses Plugin xili-language

dh: 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;
   }

}

Der Code ist wirklich rau, aber Sie haben die Idee ..? Speichern Sie die Benutzerauswahl, Überprüfen Sie diese Auswahl,

Wenn es festgelegt wurde, verwenden Sie diesen Wert als Spracheinstellung auf der Site. Andernfalls kehren Sie einfach zum Standard zurück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top