J'ai une page qui est générée dynamiquement en fonction d'un paramètre de requête, que je souhaite "masquer" comme un "joli" permalien normal.
En ce moment j'utilise:
https://example.com/dynamic-page/?parameter=xxx
et je souhaite y parvenir:
https://example.com/dynamic-page/xxx/
Tout cela en utilisant la structure WP permalien suivante:
/blog/%postname%/
Donc, actuellement, c’est la WP de mon .htaccess
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Le dynamic-page
n'a pas d'enfants, il n'y a donc pas déjà de structure de permalien "en dessous". Tout cela sans toucher à la fonctionnalité de permalien standard de WP.
J'ai trouvé ce que je cherchais. Voici ce que j'utilise:
function add_query_vars($vars) {
$vars[] = "parameter";
return $vars;
}
add_filter('query_vars', 'add_query_vars');
Le code ci-dessus ajoute la variable de requête parameter
à la liste que WP cherche.
function add_rewrite_rules($rules) {
$newrules = array('dynamic-page/([^/]+)/?$' => 'index.php?pagename=dynamic-page¶meter=$matches[1]');
$rules = $newrules + $rules;
return $rules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules');
Ce qui précède effectue la réécriture de l'URL réelle, dans le contexte fourni par la question d'origine.
Plus d'informations peuvent être trouvées dans ce tutoriel:
http://www.rlmseo.com/blog/passing-get-query-string-parameters-in-wordpress-url/