web-dev-qa-db-fra.com

le paramètre add_rewrite_rule n'est pas reçu par la page.

Cela ne marche pas:

add_rewrite_rule('^spor/?','index.php?pagename=search&search_text=spor',top);

Il va à la page de recherche mais search_text=spor ne prend pas effet. (Comme vide)

Lorsque je navigue manuellement à partir du navigateur:

www.mydomain.com/index.php?pagename=search&search_text=spor

la requête fonctionne avec succès. Qu'est-ce que je rate?

1
HOY

Les vars de requête personnalisés doivent être ajoutés via le filtre query_vars pour être analysés dans les règles.

function wpd_add_query_vars( $qvars ) {
  $qvars[] = 'search_text';
  return $qvars;
}
add_filter( 'query_vars', 'wpd_add_query_vars' );

Vous pouvez alors obtenir la valeur avec get_query_var('search_text').

1
Milo