Cum pot rescrie un URL de tip 'page' bazat pe parametrii din șirul de interogare?

16 aug. 2012, 07:27:09
Vizualizări: 16K
Voturi: 1

Am următoarea pagină care conține un singur post și mai multe comentarii:

http://mysite.com/tips

Când un utilizator postează un comentariu, adaug metadate la acesta pentru a putea filtra comentariile folosind aceste URL-uri:
http://mysite/tips?id=cat&filter_id=1
http://mysite/tips?id=dog&filter_id=2

Doresc să folosesc următoarele URL-uri în schimb:
http://mysite/tips/cat
http://mysite/tips/dog

Pagina tips afișează o listă de postări bazată pe parametrii din șirul de interogare.

Am urmărit acest tutorial, care părea să fie exact ceea ce am nevoie, dar când introduc URL-ul meu, primesc o eroare de pagină negăsită. http://thereforei.am/2011/10/28/advanced-taxonomy-queries-with-pretty-urls/

Este posibil acest lucru?

0
Toate răspunsurile la întrebare 3
0

Puteți adăuga o regulă de rescriere precum următoarea. Asigurați-vă că înregistrați variabilele de interogare publice cu WordPress, astfel încât acesta să recunoască variabilele din regula de rescriere.

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;
}

Accesați pagina Setări de legături permanente pentru a reîmprospăta legăturile permanente.

Puteți accesa variabilele dvs. după cum urmează:

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

Notă, doriți să aveți două variabile dinamice cu un singur segment de URI, ceea ce nu va funcționa deloc. Regula de rescriere de mai sus funcționează pentru tips/cat/1 (unde 1 este filter_id).

Pentru a vă testa regulile, vă recomand să utilizați Monkeyman Rewrite Analyzer.

Sper că acest lucru vă este de ajutor!

17 aug. 2012 07:21:22
0

Puteți utiliza funcția add_query_arg:

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

Acum adresele URL arată astfel:

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

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

Puteți obține valorile argumentelor în felul următor:

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

Aici găsiți mai multe informații despre add_query_arg

8 mai 2013 11:26:10
0
-1

Cred că dorești să schimbi stilul Permalink-ului. Poți modifica Permalink-ul site-ului tău prin panoul de administrare WordPress. Mergi în WordPress și apoi în meniul lateral, navighează la "Setări", unde vei găsi un sub-meniu numit "Permalinks". Dacă dai click pe el, vei vedea mai multe tipuri de Permalinks oferite de WordPress și poți crea chiar un Permalink personalizat. Uită-te la imaginea de mai jos, sper că te va ajuta:

Setări Permalink

16 aug. 2012 08:10:20