Co to jest slug?

Slug jest częścią adresu URL, gdy uzyskujesz dostęp do zasobu. Powiedzmy, że masz adres URL, taki jak ten poniżej, który wyświetla wszystkie samochody w systemie:

http://localhost/cars

Gdy chcesz odnieść się do konkretnego samochodu w systemie, podałbyś następujący adres URL:

http://localhost/cars/audi-a6/

Zauważ, że ten adres URL jest nadal bardzo logiczny i bardzo przyjazny dla SEO. Jeśli chodzi o użycie slug, to jest to według własnego uznania. Powyższy ciąg audi-a6 może być unikalnym identyfikatorem samochodu w Twoim systemie – powiedzmy, że masz relacyjną bazę danych z następującymi polami:

idcar_namecar_brandcar_unique_identifier

Pole car_unique_identifier byłoby używane do przechowywania wartości, które są wyświetlane w slugu; w przykładzie, który podałem powyżej z samochodem Audi A6, jest to miejsce, gdzie Twój ciąg audi-a6 będzie żył.

Możesz użyć go również w inny sposób – na przykład, jeśli masz kontroler postów, który działa jak blog. Tytuł strony może być slugiem dla niej, jeśli jest zakodowany w adresie URL. Dla naszego artykułu o nazwie „Best ways to make SEO better”, możesz podać następujący URL:

http://localhosts/posts/best-ways-to-make-seo-better

Następnie uruchomisz url_decode() na slugu, a otrzymasz ciąg best ways to make seo better, którego możesz użyć w celu znalezienia postu poprzez jego tytuł.

Nie musi się na tym kończyć – możesz zdecydować się na posiadanie wielu slug, aby coś reprezentować – spójrzmy jak BBC to robi. Wziąłem losowy artykuł z dnia dzisiejszego, który ma następujący URL:

http://www.bbc.co.uk/news/world-africa-24506006

To łączy się z artykułem o nazwie: Unia Afrykańska wzywa MTK do zaniechania spraw przeciwko przywódcom. Sposób, że BBC robią to jest to, że używają ostatniej części ślimaka world-africa-24506006, który jest 24506006, aby zidentyfikować unikalny wpis w ich systemie. Następnie najprawdopodobniej używają world-africa do oznaczenia kategorii, do której należy post (chociaż może to być tylko założenie, to nadal jest to wykształcone przypuszczenie).

Wreszcie, wyobraźmy sobie następującą tabelę DB, dla prac badawczych.

idcategorytitle

Możesz mieć przykład, który działa jak ten poniżej.

http://localhost/papers

Ten adres URL reprezentuje wszystkie prace badawcze znajdujące się obecnie w systemie. Byłbyś wtedy w stanie uzyskać dostęp do wszystkich prac badawczych na temat fizyki za pośrednictwem następującego slug:

http://localhost/papers/physics

Nasz slug to fizyka, a nasza baza danych select obecnie wygląda coś w stylu:

SELECT *FROM papersWHERE LOWER(papers.category) = 'physics'

Możesz wtedy wystawić następujący URL:

http://localhost/papers/physics/gravitation

Teraz nasz slug składa się z fizyki i grawitacji. Nasze zapytanie za kulisami może wyglądać tak:

SELECT *FROM papersWHERE LOWER(papers.category) = 'physics'AND LOWER(papers.title) = 'gravitation'

To pozwala nam na unikalną identyfikację wpisu w naszym systemie.

Więc użyliśmy slug wielokrotnie w celu odfiltrowania naszych informacji. W przykładzie, kiedy uruchomiliśmy URL bez żadnych ślimaków:

http://localhost/papers

Chcieliśmy wymienić wszystkie dostępne prace badawcze. Kiedy uruchomiliśmy URL z physics slug:

http://localhost/papers/physics

chcieliśmy wymienić wszystkie prace badawcze na temat fizyki, zawężając w ten sposób nasze wyniki. Wreszcie, gdy podaliśmy dwa slugi, mogliśmy jednoznacznie zidentyfikować wpis w naszym systemie.

http://localhost/papers/physics/gravitation

Czy mogliśmy modelować to inaczej? Oczywiście! W zależności od wymagań naszego systemu, możemy normalizować i denormalizować nasze tabele relacyjne. Moglibyśmy mieć system permalinków, tak aby nasza tabela postów wyglądała tak:

 id title permalink

Moglibyśmy mieć następujący wpis:

 | 20013 | Gravitation | physics-gravitation-breakthrough |

Tym samym ujawniając URL:

 http://localhost/papers/physics-gravitation-breakthrough

W powyższym przykładzie, slug physics-gravitation-breakrough pozwala nam jednoznacznie zidentyfikować post poprzez:

 SELECT * FROM papers WHERE papers.permalink = physics-gravitation-breakthrough