Tengo instalado el plugin Rewrite rules inspector. y hago Flush Rules, en cada prueba
Tengo la función añadida a mi archivo principal del plugin
Código:
function my_insert_rewrite_rules( $rules )
{
$newrules = array();
$newrules['botiges/(.+?)$'] = 'index.php?pagename=botiges&id-tienda=$matches[1]';
return $newrules + $rules;
}
// Adding the id var so that WP recognizes it
function my_insert_query_vars( $vars )
{
array_push($vars, 'id-tienda');
return $vars;
}
add_filter( 'rewrite_rules_array','my_insert_rewrite_rules' );
add_filter( 'query_vars','my_insert_query_vars' );
Incluso he encontrado esta función de auto flush, y parece que funciona ya que el plugin de Rewrite rules inspector me dice que están todas bien y aparece la primera...
Código:
function my_flush_rules(){
$rules = get_option( 'rewrite_rules' );
if ( ! isset( $rules['botiges/(.+?)$'] ) ) {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
}
add_action( 'wp_loaded','my_flush_rules' );
Pero no hay manera . Es igual como llame a la pagina
localhost/nou_centre/botiges/7 <-- No funciona no le da valor al get id-tienda
localhost/nou_centre/index.php?pagename=botiges&id-tienda=3 <-- si funciona pero no transforma las variables a url amigable, aunque no se si debería hacerlo
la expresión regular creo que esta correcta, no la he modificado mucho de comó dijo TMeister.