web-dev-qa-db-fra.com

Jolis Permaliens

J'ai créé ma propre fonctionnalité de recherche qui recherche le magasin le plus proche du code postal saisi.

Mon URL pour la recherche ressemble actuellement à ceci http://www.example.com/stores?searchTerm=London, ce qui n’est pas vraiment convivial pour le référencement. Je voudrais que mon URL soit dans le format suivant - http://www.example.com/stores/London. Cependant, en raison de mon manque de connaissances sur le fonctionnement des réécritures d’URL WordPress, j’ai du mal à résoudre ce problème.

Stores est une page qui parcourt les résultats.

Si quelqu'un a des idées sur la façon de procéder ou s'il peut me diriger dans la bonne direction, ce serait grandement apprécié.

4
Codarz360

Vous devez d'abord ajouter votre propre variable de requête personnalisée:

function add_search_store_query_var($vars) {
    $vars[] = 'search_store';
    return $vars;
}
add_filter( 'query_vars', 'add_search_store_query_var');

Et puis ajoutez la règle de réécriture:

function add_search_store_rewrite_rule() {
    add_rewrite_rule('stores/([^/]+)$', 'index.php?page_id=<YOUR SEARCH PAGE ID>&search_store=$matches[1]', 'top');
}
add_action('init', 'add_search_store_rewrite_rule');

Vous pouvez ensuite utiliser get_query_var('search_store'); pour obtenir le terme de recherche.

N'oubliez pas de vider les règles de réécriture avant de le vérifier - cela ne fonctionnera pas sans vider les règles. (Accédez simplement aux paramètres de permalien et cliquez sur Enregistrer).

PS Codé directement ici, donc ça peut être un peu buggé.

1
Krzysiek Dróżdż