Come posso riscrivere un URL 'page' basato su parametri di query string?
Ho la seguente pagina che contiene un singolo post e una serie di commenti:
http://mysite.com/tips
Quando un utente pubblica un commento, aggiungo dei meta-dati per poter filtrare i commenti usando questi URL:
http://mysite/tips?id=cat&filter_id=1
http://mysite/tips?id=dog&filter_id=2
Vorrei invece usare i seguenti URL:
http://mysite/tips/cat
http://mysite/tips/dog
La pagina tips mostra una lista di post basati sui parametri della query string.
Ho seguito questo tutorial, che sembrava fare al caso mio, ma quando digito il mio URL, ottengo un errore di pagina non trovata. http://thereforei.am/2011/10/28/advanced-taxonomy-queries-with-pretty-urls/
È possibile farlo?

Puoi aggiungere una regola di riscrittura come la seguente. Assicurati di registrare le tue variabili di query pubbliche con WordPress in modo che riconosca le variabili della tua regola di riscrittura.
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 pagina delle impostazioni dei Permalink per rigenerare i tuoi permalink.
Puoi accedere alle tue variabili nel seguente modo:
$id = get_query_var('id');
$filter_id = get_query_var('filter_id');
Nota, stai cercando di avere due variabili dinamiche con un singolo segmento URI, il che non funzionerà affatto. La regola di riscrittura sopra funziona per tips/cat/1 (dove 1 è il filter_id).
Per testare le tue regole, ti consiglio vivamente di utilizzare il Monkeyman Rewrite Analyzer.
Spero che questo ti sia d'aiuto!

Puoi utilizzare la funzione add_query_arg
:
add_query_arg('filter_id', 1);
add_query_arg('filter_id', 2);
Ora gli URL appariranno così:
http://mysite/tips/cat?filter_id=1
http://mysite/tips/dog?filter_id=2
Puoi ottenere i valori degli argomenti nel seguente modo:
$id = get_query_var('id');
$filter_id = get_query_var('filter_id');

Penso che tu voglia cambiare lo stile dei Permalink. Puoi modificare i Permalink del tuo sito web attraverso il pannello di amministrazione di WordPress. Vai su WordPress e poi nel menu laterale vai su Impostazioni, dove vedrai un sottomenu chiamato Permalink. Cliccandolo, vedrai diversi tipi di Permalink forniti da WordPress. Puoi anche creare un Permalink personalizzato. Dai un'occhiata all'immagine, spero possa esserti utile:
