web-dev-qa-db-fra.com

Comment ajouter une variable personnalisée dans l'URL sans redirection?

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');
1
Stanislau Ladutska

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');
1
Stanislau Ladutska

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/

1
daniyalahmad