Frage

Ich sehe oft (umgeschrieben) URLs ohne ID in es, wie auf einigen wordpress-Installationen.Was ist der beste Weg, dies erreichen?Beispiel:site.com/product/some-product-name/ Vielleicht halten array der Seite die Namen und IDs im cache befinden, zu vermeiden DB-Abfrage auf jeder Seite anfordern?Wie, um Konflikte zu vermeiden und was sind die anderen Probleme, auf die über urls ohne IDs?

War es hilfreich?

Lösung

Über eine ID bietet die gleichen Rätsel, wirklich-Sie sind nur die Prüfung für einen anderen Wert in Ihrer Datenbank.Die "paar-product-name" Teil Ihrer URL oben ist auch etwas einzigartig ist.Manche nennen Sie die Patronen (Wordpress, auch permalinks).Anstatt also Abfragen der Datenbank nach einer Zeile, die die Kennung, du bist das Abfragen der Datenbank nach einer Zeile mit einem bestimmten slug.Sie brauchen nicht zu wissen, die ID zum abrufen des Datensatzes.

Andere Tipps

Solange die Produkt-Namen sind einzigartig, es sollte kein Problem sein.Es dauert nicht mehr (zumindest nicht von Bedeutung) nachschlagen ein Produkt von eindeutigen Namen als numerische ID, solange die Spalte indiziert ist.

Wordpress hat ein Feld in der wp_posts-Tabelle für die slug.Wenn Sie beim erstellen des post, es schafft eine nacktschnecke aus der post-Titel (wenn das ist, wie Sie haben es konfiguriert), und ersetzen Sie Leerzeichen durch Bindestriche (oder ich denke, Sie können es zu Unterstriche).Es dauert auch aus der Apostrophe, Kommas, oder ähnliches.Ich glaube, es begrenzt auch die Länge der Schnecke, zu.

Also, kurz gesagt, es ist nicht dynamisch Dekodieren der URL in der post-Titel-es gibt ein Feld in der Tabelle, entspricht die URL-version des post-name direkt.

Wie Sie vielleicht oder vielleicht nicht wissen, sind die URLs neu geschrieben Apache mod_rewrite Modul.Wie hier erwähnt, ist Wordpress im hintergrund, zuweisen eine Schnecke nach der Desinfektion der Titel-oder post-name.

Aber, um deine Frage zu beantworten, was Sie beschreiben, ist Wordpress' "Pretty Permalinks" - Funktion, und Sie können lernen, mehr über Sie in der Wordpress codex.Neuere Versionen von Wordpress, machen die re-writing intern (no .htaccess editin, wp_rewrite statt).Das ist, warum Sie werden sehen, die gleichen Regeln für alle permalink-Struktur.

Obwohl, wenn Sie tun einige Graben finden Sie die alte rewrite-Regeln.Zum Beispiel:

RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$ /index.php?year=$1&monthnum=$2&day=$3 [QSA,L]

Nehmen Sie eine URL wie /2008/01/01/ und direkt auf Sie zu /index.php?year=2008&monthnum=01&day=01 (und laden Sie ein Datum Kategorie).

Aber, wie gesagt, eine Seite wie product-name vorhanden nur da Wordpress bereits sanitized der post-Titel gespeichert und es als Feld in der Datenbank.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top