Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Apache/wordpress] Jak uzyskać /wartosc/wartosc/
Forum PHP.pl > Forum > Serwery WWW
tworas
Powiedzmy, że mam sklep z produktami oraz atrybuty tych produktów:

- kolor
- rozmiar

Zapytanie wyświetlające wszystkie produkty wygląda tak:

Kod
index.php?post_type=product


Zapytanie wyświetlające:

- kolor np czerwony:

Kod
index.php?post_type=product&pa_color=czerwony


- kolor np czerwony i czarny

Kod
index.php?post_type=product&pa_color=czerwony+czarny


- rozmiar 20

Kod
index.php?post_type=product&pa_size=20


- rozmiar 20 i kolor czarny

Kod
index.php?post_type=product&pa_color=czerwony&pa=size=20


- kolor czarny i czerwony oraz rozmiar 20

Kod
index.php?post_type=product&pa_color=czerwony+czarny&pa=size=20


chciałbym utworzyć do tego ładne linki odpowiednio:

Kod
/czerwony/
/czerwony+czarny/
/20/
/czarny/20/
/czarny+czerwony/20/


według zasady powinno to wyglądać mniej wiecej tak:

Kod
index.php?post_type=product&pa_color=czerwony => /([^/]*)/
index.php?post_type=product&pa_color=czerwony&pa=size=20 =>  /([^/]*) /([^/]*)/


no i to mi działa ok, ale jak rozróżnić zapytanie o rozmiar

Kod
index.php?post_type=product&pa_size=20 =>  /([^/]*)/


w tym momencie robi się konflikt, ponieważ już zapytanie o kolor posiada taki przypis

Macie jakieś rady, jak to rozwiązać?
wolguy
Możesz to zrobić na dwa sposoby: rozmiar filtrować wyrażeniem regularnym [0-9] a kolory jako [a-z] lub drugie wyjście, takie jakie jest we frameworkach, np. tak:
/kolor/czerwony+czarny/size/20, /size/20, /kolor/czerwony
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.