Was ist ein Slug?

Ein Slug ist ein Teil der URL, wenn Sie auf eine Ressource zugreifen. Angenommen, Sie haben eine URL wie die folgende, die alle Autos in Ihrem System anzeigt:

http://localhost/cars

Wenn Sie auf ein bestimmtes Auto in Ihrem System verweisen möchten, würden Sie die folgende URL eingeben:

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

Beachten Sie, dass die URL immer noch sehr logisch und sehr SEO-freundlich ist. Was die Verwendung des Slugs angeht, so liegt das in Ihrem eigenen Ermessen. Die obige Zeichenkette audi-a6 kann ein eindeutiger Bezeichner für ein Auto in Ihrem System sein – nehmen wir an, Sie haben eine relationale Datenbank mit den folgenden Feldern:

idcar_namecar_brandcar_unique_identifier

Das Feld car_unique_identifier würde dann verwendet werden, um die Werte zu speichern, die im Slug angezeigt werden; in dem Beispiel, das ich oben mit einem Audi A6-Auto angegeben habe, würde Ihre Zeichenkette audi-a6 hier stehen.

Sie können ihn auch auf andere Weise verwenden – zum Beispiel, wenn Sie einen Posts-Controller haben, der wie ein Blog funktioniert. Der Titel einer Seite könnte der Slug für sie sein, wenn er URL-kodiert ist. Für unseren Artikel mit dem Titel „Best ways to make SEO better“ könnten Sie die folgende URL angeben:

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

Sie würden dann url_decode() auf den Slug anwenden, und Sie würden die Zeichenfolge best ways to make seo better erhalten, die Sie verwenden können, um einen Beitrag über seinen Titel zu finden.

Dabei muss es nicht bleiben – Sie können beschließen, mehrere Slugs zu haben, um etwas darzustellen – sehen wir uns an, wie BBC das macht. Ich habe einen zufälligen Artikel von heute genommen, der die folgende URL hat:

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

Dieser verweist auf einen Artikel mit dem Namen: African Union urges ICC to drop cases against leaders. Die BBC verwendet den letzten Teil des Slugs world-africa-24506006, der 24506006 lautet, um einen eindeutigen Eintrag in ihrem System zu identifizieren. Sie verwenden dann höchstwahrscheinlich world-africa, um die Kategorie zu bezeichnen, zu der ein Beitrag gehört (auch wenn dies nur eine Vermutung ist, so ist es doch eine fundierte Vermutung).

Schließlich stellen wir uns die folgende DB-Tabelle für Forschungsarbeiten vor.

idcategorytitle

Sie könnten ein Beispiel haben, das wie das folgende funktioniert.

http://localhost/papers

Diese URL steht für alle Forschungsarbeiten, die sich derzeit im System befinden. Sie könnten dann über den folgenden Slug auf alle Forschungsarbeiten zum Thema Physik zugreifen:

http://localhost/papers/physics

Unser Slug ist Physik, und unsere Datenbankauswahl sieht derzeit etwa so aus:

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

Sie könnten dann die folgende URL angeben:

http://localhost/papers/physics/gravitation

Nun besteht unser Slug aus Physik und Gravitation. Unsere Abfrage hinter den Kulissen könnte etwa so aussehen:

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

Damit können wir einen Eintrag in unserem System eindeutig identifizieren.

Wir haben also wiederholt Slugs verwendet, um unsere Informationen herauszufiltern. Wenn wir im Beispiel die URL ohne Slugs aufrufen:

http://localhost/papers

Wir wollten alle verfügbaren Forschungsarbeiten auflisten. Wenn wir die URL mit dem Slug „physics“ aufrufen:

http://localhost/papers/physics

, möchten wir alle Forschungsarbeiten zum Thema Physik auflisten und so unsere Ergebnisse einschränken. Wenn wir schließlich zwei Slugs angeben, können wir einen Eintrag in unserem System eindeutig identifizieren:

http://localhost/papers/physics/gravitation

Hätten wir dies anders modellieren können? Ja, natürlich! Je nach den Anforderungen an unser System können wir unsere relationalen Tabellen normalisieren und denormalisieren. Wir hätten ein Permalink-System einrichten können, so dass unsere Beitragstabelle wie folgt aussähe:

 id title permalink

Wir hätten dann den folgenden Eintrag haben können:

 | 20013 | Gravitation | physics-gravitation-breakthrough |

Damit wäre die URL offengelegt:

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

Im obigen Beispiel ermöglicht uns der Slug physics-gravitation-breakthrough die eindeutige Identifizierung eines Beitrags über:

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