- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Banner a seconda della lingua
-
Banner a seconda della lingua
Ciao a tutti,
Sto cercando di visualizzare un banner nella sidebar di Wordpress, in italiano o in inglese, a seconda della lingua scelta.
Ho provato in due modi:
- recuperando la variabile /?lang=en: (codice semplificato)
if ($_GET['lang'] == "en") { BANNER IN INGLESE }
if ($_GET['lang'] == "") { BANNER IN ITALIANO }... niente da fare.
Poi ho provato a recuperare gli ultimi due caratteri della url per intercettare la versione inglese (/?lang=en): (codice semplificato)
$lingua = substr($_SERVER["HTTP_REFERER"], -2, 2);
if ($lingua == "en") { BANNER INGLESE }
else { BANNER ITALIANO }Così, se sono in lingua italiano, il banner cambia solo se clicco DUE VOLTE su "English".
Qualcuno ne sa più di me?
Grazie a tutti.
-
@Number Nine said:
- recuperando la variabile /?lang=en: (codice semplificato)
if ($_GET['lang'] == "en") { BANNER IN INGLESE }
if ($_GET['lang'] == "") { BANNER IN ITALIANO }Ciao, avevo il tuo stesso problema e avevo risolto esattamente così come dici tu. Non è che c'era qualche errore nel codice "Banner" che non te lo visualizzava??
-
No, il codice sembra andare bene, perché se lo lascio senza gli IF allora funziona (naturalmente senza cambiare il banner).
-
Prova a mettere
$i=1;
if($i==0){ BANNER ITA }
else { BANNER ENG }se così ti viene il banner in inglese vuol dire il sistema per una qualche ragione nn ti riconosce il $_GET['lang'] ne il $_SERVER
-
Grazie per il consiglio Teju. Purtroppo non ha funzionato.
Cercavo di leggere la variabile della lingua attraverso $_GET['lang'], $lang, $_REQUEST['lang']... ma nessuna di esse era leggibile.
Allora ho pensato che forse stavo cercando l'ago nel pagliaio sbagliato. Non mi è venuto in mente (errore!) di indicare in questi post che utilizzo il plug-in QTRANSLATE per la gestione delle lingue. Ho cercato quale variabile o funzione potesse restituire il valore della lingua in qtranslate. Con la ricerca "qtranslate variables" in Google ho trovato quasi subito una soluzione funzionante:
la chiave è: $lingua=qtrans_getLanguage();
il codice è elementare: (semplificato)
$lingua = qtrans_getLanguage();
if ($lingua=="en") { BANNER IN INGLESE }
else { BANNER IN ITALIANO }Scusa Teju se ti ho fatto perdere tempo non indicandoti il QTRANSLATE.
Spero che questo serva anche ad altri.
-
No problem, ottimo che hai risolto e bene che hai riportato la soluzione per altri! ^_^