web-dev-qa-db-fra.com

Passer des variables à travers la structure permalien

J'ai une page WordPress accessible via/hébergement /.

Ce que je veux être capable de faire est de passer un paramètre en utilisant l'URL - c.-à-d. Aller à/accommodation/value1/chargerait la même page que/accommodation/- mais toujours afficher/accommodation/value1/dans la barre d'adresse du navigateur.

J'imagine qu'une autre façon de le dire serait de dire que je dois pouvoir accéder à/hébergement/en ajoutant tout ce que je veux à la fin de l'URL, tout en conservant l'URL que j'ai entrée dans la fenêtre du navigateur.

J'ai ensuite du code dans le modèle de page qui fait différentes choses en fonction des valeurs transmises à la page.

Bien que je puisse utiliser une chaîne de requête, je souhaite éviter de le faire afin de pouvoir conserver les "jolies URL".

Merci beaucoup pour toute aide/suggestions.

4
gbuckingham89

Résolu!

// Register the variables that will be used as parameters on the url
function add_my_var($public_query_vars) {
    $public_query_vars[] = 'extra_slug';
    return $public_query_vars;
}
add_filter('query_vars', 'add_my_var');

// Build the rewrite rules, for the extra parameter
function do_rewrite() {
    add_rewrite_rule('(accommodation)/[/]?([^/]*)$', 'index.php?pagename=accommodation&extra_slug=$matches[2]','top');
}
add_action('init', 'do_rewrite');

// The parameter is now accessible
get_query_var('extra_slug')
4
gbuckingham89