¿Cómo puedo reescribir una URL de 'página' basada en parámetros de cadena de consulta?

16 ago 2012, 07:27:09
Vistas: 16K
Votos: 1

Tengo la siguiente página que contiene una sola publicación y varios comentarios:

http://mysite.com/tips

Cuando un usuario publica un comentario, añado metadatos para poder filtrar comentarios usando estas URLs:
http://mysite/tips?id=cat&filter_id=1
http://mysite/tips?id=dog&filter_id=2

Quiero usar estas URLs en su lugar:
http://mysite/tips/cat
http://mysite/tips/dog

La página tips muestra una lista de publicaciones basada en los parámetros de la cadena de consulta.

Seguí este tutorial, que parecía ser lo que necesitaba, pero cuando ingreso mi URL, obtengo un error de página no encontrada. http://thereforei.am/2011/10/28/advanced-taxonomy-queries-with-pretty-urls/

¿Es esto posible?

0
Todas las respuestas a la pregunta 3
0

Puedes agregar una regla de reescritura como la siguiente. Asegúrate de registrar tus variables de consulta públicas con WordPress para que reconozca las variables de tu regla de reescritura.

add_rewrite_rule('^(tips)/([^/]*)/([^/]*)/?', 'index.php?name=$matches[1]&id=$matches[2]&filter_id=$matches[3]','top');

add_filter('query_vars', 'foo_my_query_vars');
function foo_my_query_vars($vars){
    $vars[] = 'id';
    $vars[] = 'filter_id';
    return $vars;
}

Visita la página de Configuración de Enlaces permanentes para regenerar tus permalinks.

Puedes acceder a tus variables de la siguiente manera:

$id = get_query_var('id');
$filter_id = get_query_var('filter_id');

Nota: estás intentando tener dos variables dinámicas con un solo segmento de URI, lo cual no funcionará en absoluto. La regla de reescritura anterior funciona para tips/cat/1 (donde 1 es el filter_id).

Para probar tus reglas, te recomiendo encarecidamente que utilices el Analizador de Reescritura Monkeyman.

¡Espero que esto te ayude!

17 ago 2012 07:21:22
0

Puedes usar la función add_query_arg:

add_query_arg('filter_id', 1);
add_query_arg('filter_id', 2);

Ahora las URLs se verán así:

http://misitio/tips/cat?filter_id=1

http://misitio/tips/dog?filter_id=2

Puedes obtener los valores de los argumentos de la siguiente manera:

$id = get_query_var('id');
$filter_id = get_query_var('filter_id');

Aquí hay más información sobre add_query_arg

8 may 2013 11:26:10
0
-1

Creo que quieres cambiar el estilo de los Permalinks. Puedes cambiar los Permalinks de tu sitio web a través del panel de administración de WordPress. Ve a WordPress y luego en el menú lateral ve a "Ajustes" y allí verás un submenú de "Permalinks". Haz clic en él y verás muchos tipos de Permalinks proporcionados por WordPress. También puedes crear tu propio Permalink personalizado. Mira la imagen, espero que te ayude:

Configuración de Permalinks

16 ago 2012 08:10:20