WordPress: gestire gli URL nei plugin multilingua

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.

Torna su