Creazione di una struttura permalink personalizzata per le lingue


9

Ho scritto un semplice sistema multi-lingua, per cui facendo clic sull'icona di una bandiera si imposta un cookie di un anno contenente un codice di due lettere (ad es. Nl, de, ecc.).

Aggancio wpall'azione per leggere il valore del cookie, quindi utilizzare i filtri the_titlee the_contentper mostrare la lingua corretta (le diverse lingue vengono immesse tramite metabox nella schermata di modifica della pagina / post).

Tutto funziona alla grande, tranne che mi piacerebbe anche avere permalink per ogni versione di lingua in cui il codice della lingua di due lettere è tra il nome di dominio e la consueta struttura del permalink. Sto usando la %postname%struttura del permalink, quindi tutto quanto segue sarebbe valido:

http://example.com/nl/about-us
http://example.com/de
http://example.com/fr/2012/03
http://example.com/es/this-is-a-post-title

Se la lingua corrente è l'inglese, non è necessario utilizzare un codice di due lettere (sarà solo il normale permalink).

Finora ho usato il query_varsfiltro per aggiungere una query var chiamata lang, ma è una cosa che ho, non sono sicuro di quali saranno i prossimi passi. Qualche consiglio molto apprezzato!



1
grazie @ l2aelba, quella risposta è abbastanza vicina a ciò di cui ho bisogno con alcune piccole modifiche.
Simon Blackbourn,

Hai dei sottodomini per questo o solo un singolo sito web
kennethjfalbous,

solo un singolo sito web
Simon Blackbourn,

Risposte:


1

La tua domanda è abbastanza complicata da rispondere da sola, ma ti suggerirei di installare il qTranslateplugin. Come dice la descrizione del plugin:

Scegli una delle 3 modalità per rendere i tuoi URL belli e SEO-friendly. - Il ovunque compatibile? Lang = en, semplice e bello / en / foo / o bello e pulito en.yoursite.com

Quindi puoi provare a ispezionare il codice del plug-in e vedere come lo fanno, o semplicemente usarlo.


1
grazie per il link, darò un'occhiata per vedere se riesco a decostruire il codice.
Simon Blackbourn

-1

Questo è il filtro che sto usando:

function em_wpml_dbem_taxonomy_category_slug($option){
$lang = get_bloginfo('language');

if( $lang === 'es-ES' ){
    $option = 'eventos/categorias';
} else {
    $option = 'events/categories';
}
return $option;
}
add_filter('pre_option_dbem_taxonomy_category_slug', 'em_wpml_dbem_taxonomy_category_slug');

2
Aggiungi una spiegazione alla tua risposta, grazie.
Nicolai,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.