Estoy intentando agregar una regla de reescritura personalizada con una sola variable a una página específica. La versión 'fea' es http://example.com/used-cars/car/?carname=name-of-car
y la versión 'pretty' que busco es http://example.com/used-cars/car/name-of-car
.
http://example.com/used-cars/car/
es una página con una plantilla personalizada que no muestra nada si la variable carname
no está establecida. Este es el código que tengo hasta ahora:
add_filter('query_vars', 'ip_add_rewrite_query_vars');
function ip_add_rewrite_query_vars($query_vars) {
$query_vars[] = 'carname';
return $query_vars;
}
add_action('init', 'ip_add_rewrite_rules');
function ip_add_rewrite_rules() {
add_rewrite_rule(
'used-cars/car/([^/]+)/?$',
'index.php?p=403&carname=$matches[1]',
'top'
);
}
Con esto, cuando voy a http://example.com/used-cars/car/name-of-car
, solo redirige a http://example.com/used-cars/car
y get_query_var('carname')
devuelve null
.
He intentado un par de variaciones diferentes en formas de hacer esto (como modificar $wp_rewrite
directamente, usando add_rewrite_tag()
), pero o bien obtengo el mismo resultado o un error 404. Vacío las reglas de reescritura y el caché de mi navegador cada vez que intento probar la página nuevamente. Instalé el complemento analizador de reescritura y mi reescritura aparece allí y parece correcta en comparación con las predeterminadas. Por lo que puedo ver en todos los ejemplos en la web, el código que debería funcionar (es prácticamente el mismo ejemplo que en la página de códice) y no tengo idea de por qué no funciona.
Esta es una configuración multisitio (cada sitio en un subdominio diferente). No estoy realmente familiarizado con el multisitio, pero no creo que haya nada en eso que pueda afectar las reescrituras personalizadas.