WordPress : Comment attacher un identifiant de région à une jolie URL ?
Je veux pouvoir avoir une URL qui a une région définie par pays (aka USA = us ou Canada = ca) et je veux que l’url soit jolie. Rien de tout cela n’attache de variables à l’url.
Lors de la conception d’une page WordPress, il y a le champ slug qui est essentiellement l’URL de cette page.
<<site_url>>/<<slug>>/<<country_code>>
Je souhaite ajouter le code du pays à l’URL de mon thème et permettre à php de trier mon choix sans obtenir de 404. Ou, en raison d’URL canoniques, le ca ou nous pointe comme par magie vers d’autres pages. (c’est-à-dire si l’URL se termine par le code pays ca, le site redirige vers la page /carrières, ce qui n’est pas ce que je veux.)
J’aimerais avoir un exemple à fournir, mon site n’est pas encore en ligne. Travaille toujours dans un état de développement.
Existe-t-il un moyen de modifier le *.htaccess pour personnaliser les règles en fonction de mes besoins ? Ou existe-t-il un autre moyen de résoudre ce problème ? J’ai envisagé l’internationalisation, mais des changements d’image/de mise en page ont été suggérés.
Mise à jour
Utilisation add_rewrite_rule
comme déclaré dansfunctions.php
<?php
function custom_rewrite_rule() {
add_rewrite_rule('^([^/]*)/([^/]*)/?','$matches[1].php?country=$matches[2]','top');
//student page_id = 95
add_rewrite_rule('^student/([^/]*)/?','index.php?page_id=95&country=$matches[1]','top');
}
add_action('init', 'custom_rewrite_rule', 10, 0);
?>
Comment accéder au pays ? Est-ce via $_GET['country']
?
Solution n°1 trouvée
En faisant référence à cette question, j’ai pu résoudre ce problème:
Besoin d’aide avec add_rewrite_rule
Pour afficher brièvement les modifications que j’ai apportées, voilà, dans mon thème, functions.php
j’ai ajouté l’action suivante :
add_action('init','custom_rewrite_rule');
function custom_rewrite_rule(){
add_rewrite_rule('^student/([^/]*)/','index.php?pagename=student&country=$matches[1]','top');
}
Ce qui précède permet à mes URL d’être la jolie forme de :
- {{site_url}}/student/ca/
- {{site_url}}/student/us/
Cependant, cette forme d’URL n’est pas reconnaissable tant que les permaliens ne sont pas vidés. Pour ce faire, accédez à votre tableau de bord wp-admin , sélectionnez Settings->Permalinks
dans l’écran de menu de droite et appuyez sur le Save
bouton en bas de l’écran principal.
Maintenant, les URL ci-dessus devraient fonctionner.
Ensuite, vous souhaitez enregistrer la variable supplémentaire dans l’URL pour une utilisation ultérieure. Dans l’exemple ci-dessus, c’est country
. Cela se fait en utilisant add_filter
dans functions.php
:
add_filter('query_vars','country_selection');
function country_selection($query_vars){
$query_vars[]='country';
return $query_vars;
}
Enfin, vous voudrez peut-être accéder à cette valeur plus tard dans les pages (c’est-à-dire : student.php). Pour ce faire, utilisez les éléments suivants :
$wp_query->get('country');
Vous pouvez echo / var_dump la variable ci-dessus ou stocker son résultat dans une autre variable pour une utilisation ultérieure.
0 commentaire