Tutti i plugin per WordPress che abilitano il supporto multilingua al vostro sito presentano una gestione pressoché identica delle lingue per quanto riguarda i permalink. Vediamo come gestire questa caratteristica.
Query string
Usando una query string gli URL si presentano come http://sito.com/percorso/?lang=codice
dove codice
è il codice
letterale della lingua in uso (ad esempio en
o de
).
Intercettare la lingua è relativamente semplice:
if(isset($_GET['lang'])) {
$lang = $_GET['lang'];
switch($lang) {
case 'en':
// codice
break;
case 'de':
// codice
break;
default:
break;
}
}
Rewrite rule
Usando le rewrite rule di WordPress gli URL possono presentarsi come http://sito.com/codice/percorso
o
http://sito.com/percorso/codice/
. Come si può notare in questo caso il codice della lingua fa parte del percorso della pagina.
Purtroppo molti plugin non aggiungono il codice della lingua alle variabili principali della query di WordPress, quindi non è possibile estrarle usando questo metodo.
Occorre quindi sfruttare la variabile REQUEST_URI
dell'array PHP globale $_SERVER
:
$uri = $_SERVER['REQUEST_URI']
if(strstr($uri, '/en/') !== false || preg_match('/en$/', $uri)) {
// codice per la lingua inglese
}
Si tratta di una soluzione sicuramente rozza ma spesso efficace.