Mi az a slug?

A slug az URL egy része, amikor egy erőforrást érünk el. Tegyük fel, hogy van egy URL-je, mint például az alábbi, amely a rendszerében lévő összes autót megjeleníti:

http://localhost/cars

Ha egy adott autóra szeretne hivatkozni a rendszerében, akkor a következő URL-t adja meg:

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

Figyelje meg, hogy ez az URL még mindig nagyon logikus, és nagyon SEO-barát. Ami a slug használatát illeti, ez a saját belátásodra van bízva. A fenti audi-a6 karakterlánc lehet egy autó egyedi azonosítója az Ön rendszerében – tegyük fel, hogy van egy relációs adatbázisa a következő mezőkkel:

idcar_namecar_brandcar_unique_identifier

A car_unique_identifier mezőt ezután a slugban megjelenő értékek tárolására használná; a fenti példában, amelyet egy Audi A6-os autóval határoztam meg, itt lenne az audi-a6 karakterlánc.

Más módon is használhatja – például, ha van egy posts vezérlője, amely úgy működik, mint egy blog. Egy oldal címe lehet az oldal slug-ja, ha az URL kódolva van. A “Best ways to make SEO better” nevű cikkünkhöz megadhatod a következő URL-t:

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

Ezután a slug-ra futtatnád a url_decode()-t, és megkapnád a best ways to make seo better stringet, amelyet arra használhatsz, hogy a bejegyzés címén keresztül megtaláld a bejegyzést.

Nem kell itt megállnod – dönthetsz úgy, hogy több slug-ot is használsz valaminek a megjelenítésére – nézzük meg, hogyan csinálja ezt a BBC. Vettem egy véletlenszerű cikket a mai napról, amelynek a következő URL címe van:

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

Ez egy cikkre hivatkozik, amelynek a címe: Az Afrikai Unió sürgeti az ICC-t, hogy ejtse az ügyeket a vezetők ellen. A BBC ezt úgy csinálja, hogy a world-africa-24506006 slug utolsó részét, azaz a 24506006-ot használja a rendszerében egy egyedi bejegyzés azonosítására. Ezután valószínűleg a world-africa-t használják arra, hogy jelöljék a kategóriát, amelyhez egy bejegyzés tartozik (bár ez lehet, hogy csak feltételezés, mégiscsak egy megalapozott találgatás).

Végül képzeljük el a következő DB táblázatot, a kutatási cikkek számára.

idcategorytitle

Egy példa úgy működhet, mint az alábbi.

http://localhost/papers

Ez az URL a jelenleg a rendszerben lévő összes kutatási dolgozatot képviseli. Ezután a következő slugon keresztül érhetné el az összes fizikai témájú kutatási cikket:

http://localhost/papers/physics

A slugunk a fizika, és az adatbázisunk kiválasztása jelenleg valahogy így néz ki:

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

Ezután a következő URL-t állíthatja ki:

http://localhost/papers/physics/gravitation

Most a slugunk a fizikából és a gravitációból áll. A lekérdezésünk a színfalak mögött valahogy így nézhet ki:

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

Ez lehetővé teszi számunkra, hogy egyedileg azonosítsunk egy bejegyzést a rendszerünkben.

Slugokat használtunk tehát többször is, hogy kiszűrjük az információinkat. A példában, amikor az URL-t slugs nélkül futtattuk:

http://localhost/papers

Az összes elérhető kutatási cikket szerettük volna felsorolni. Amikor lefuttattuk az URL-t a fizika sluggerrel:

http://localhost/papers/physics

A fizikával kapcsolatos összes kutatási cikket akartuk felsorolni, így szűkítve az eredményeinket. Végül, amikor két slugot adtunk meg, akkor egyértelműen azonosítani tudtunk egy bejegyzést a rendszerünkben:

http://localhost/papers/physics/gravitation

Ezt másképp is modellezhettük volna? Természetesen! Rendszerünk követelményeitől függően normalizálhatjuk és denormálhatjuk relációs tábláinkat. Lehetett volna egy permalink rendszerünk, így a hozzászólások táblánk így nézhetett volna ki:

 id title permalink

Ezután lehetett volna a következő bejegyzésünk:

 | 20013 | Gravitation | physics-gravitation-breakthrough |

Így kitéve az URL-t:

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

A fenti példában a slug physics-gravitation-breakthrough segítségével egyedileg azonosíthatunk egy hozzászólást:

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

segítségével.