web-dev-qa-db-fra.com

Création d'une structure de permalien personnalisée pour les langues

J'ai écrit un système multilingue simple, dans lequel cliquer sur une icône de drapeau crée un cookie d'un an contenant un code de langue à deux lettres (par exemple, nl, de, etc.).

J'accroche à l'action wp pour lire la valeur du cookie, puis utilise les filtres the_title et the_content pour afficher la langue correcte (les différentes langues sont entrées via des métaboxes dans l'écran de modification de page/post-modification).

Tout cela fonctionne très bien, sauf que j'aimerais également avoir des permaliens pour chaque version linguistique, le code de langue à deux lettres étant compris entre le nom de domaine et la structure habituelle de permalien. J'utilise la structure permalien %postname%, de sorte que tous les éléments suivants seraient valides:

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

Si la langue actuelle est l'anglais, aucun code à deux lettres ne doit être utilisé (il s'agira simplement du permalien normal).

Jusqu'ici, j'ai utilisé le filtre query_vars pour ajouter une requête nommée lang, mais c'est loin d'être le cas, je ne sais pas quelles sont les prochaines étapes. Tout conseil très apprécié!

9
Simon Blackbourn

Votre question est suffisamment compliquée pour y répondre par moi-même, mais je vous suggérerais d'installer qTranslate plugin. Comme le dit la description du plugin:

Choisissez l’un des 3 modes pour personnaliser vos URL et faciliter leur référencement. - Le partout compatible? Lang = en, simple et beau/en/foo/ou Nice et soigné en.votresite.com

Donc, vous pouvez essayer d'inspecter le code du plugin et voir comment il le fait, ou simplement l'utiliser.

1
Eugene Manuilov