J'essaie d'ajouter une variable locale à mon URL.
A titre d'exemple, j'ai cette URL:
mysite.com/my-page-name/
Et je veux y ajouter la variable 'en' et laisser la page fonctionner correctement:
mysite.com/en/my-page-name/
J'ai essayé de le gérer en utilisant add_rewrite_tag()
et add_rewrite_rule()
mais cela ne fonctionne pas, alors qu'est-ce que je fais de travers?
add_rewrite_tag('%locale%', '^([a-z]{2})');
add_rewrite_rule('^([a-z]{2})/(.+)[/$]', 'index.php?pagename=$matches[2]', 'top');
C'était juste une erreur dans l'expression rationnelle dans la règle de réécriture. Celui-ci fonctionne parfaitement!
add_rewrite_rule('^([a-z]{2})\/(.+)(\/)?$', 'index.php?page=&pagename=$matches[2]&locale=$matches[1]', 'top');
Il y a différentes façons de le réaliser. Le plus simple peut être de créer une nouvelle page avec le nom "en" pour que le slug soit mysite.com/en/
Créez maintenant la page "en" en tant que parent de my-page-name ou, en d'autres termes, créez my-page-name en tant qu'enfant de en. Donc slug sera mysite.com/en/my-page-name/