Reescreva a regra para uma string de consulta

Tenho um formulário de pesquisa de taxonomia e a saída do link é

http://localhost/wp/?cityid=16 

Mas eu quero que ele seja reeditado como

 http://localhost/wp/cityid/16 

.htaccess

 # BEGIN WordPress  RewriteEngine On RewriteBase /wp/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wp/index.php [L]  # END WordPress 

Não funcionou:

 RewirteRule ^wp/cityid/([0-9]+)$ ?cityid=$1 [L] 

Ele também não funcionou (a partir do códice wp):

 add_action('generate_rewrite_rules', 'geotags_add_rewrite_rules'); function geotags_add_rewrite_rules( $wp_rewrite ) { $new_rules = array( 'cityid/(.+)' => 'index.php?cityid=' . $wp_rewrite->preg_index(1) ); //​ Add the new rewrite rule into the top of the global rules array $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; } 

Alguma ajuda por favor?

Solutions Collecting From Web of "Reescreva a regra para uma string de consulta"

Experimente este código:

 function geotags_add_rewrite_rules($wp_rewrite_rules) { global $wp_rewrite; $rule_key = '%cityid%'; $url_pattern = '([^/]+)'; $query_string = 'cityid='; $wp_rewrite->add_rewrite_tag($rule_key, $url_pattern, $query_string); $url_structure = $wp_rewrite->root . "cityid/$rule_key/"; $rewrite_rules = $wp_rewrite->generate_rewrite_rules($url_structure); $wp_rewrite_rules = $rewrite_rules + $wp_rewrite_rules; return $wp_rewrite_rules; } add_filter('rewrite_rules_array', 'geotags_add_rewrite_rules'); function geotags_add_query_var($query_vars) { array_push($query_vars, 'cityid'); return $query_vars; } add_filter('query_vars','geotags_add_query_var'); 

NOTA: Lembre-se de salvar os permalinks para que sua nova regra seja captada pelo WP.