it-swarm.com.de

Gibt es eine maximale Schneckenlänge?

Ein Kunde hat gerade einen Beitrag mit einem sehr langen Slug (90 Zeichen), keinen Sonderzeichen (außer Bindestrichen) usw. erstellt.

Wann immer auf den Link zu diesem Beitrag geklickt wurde, einschließlich der Links "Vorschau" oder "Diesen Beitrag anzeigen" vom Admin-Back-End, wurde ein 404 generiert.

Sobald wir die Schnecke manuell zugeschnitten hatten, funktionierte alles wie erwartet. Ist das ein "Feature" oder ein "Bug"?

EDIT: Ein Hinweis für alle, die über DB-Limits sprechen.

Wenn ich das DB-Feldlimit erreichen würde, würde der Slug selbst abgeschnitten. Denken Sie eine Sekunde darüber nach. Bei den meisten WP Installationen lautet wp_posts.post_name VARCHAR (200). Nehmen wir also an, jemand tippt einen Titel mit> 200 Zeichen ein. Was geschieht? Der Slug wird auf 200 Zeichen gekürzt und in wp_posts.post_name gespeichert. Es ist nicht so, als würde jemand den vollständigen Titel des Beitrags in die Adressleiste des Browsers eingeben und die Leerzeichen durch Bindestriche ersetzen, oder? Die URL wird von WordPress generiert und die URL wird aus der Tabelle wp_posts.post_name abgerufen und einfach in das Attribut href des Ankertags eingefügt. Es wird also keine Ungleichheit geben. Die ganze DB-Sache ist ein roter Hering.

In jedem Fall ist der betreffende Slug nur 90 Zeichen lang, hat also nichts mit DB-Limits zu tun.

Gibt es bekannte Einschränkungen beim Umschreiben?

12
Tom Auger

Aufgrund der Tabellenstruktur von wp_posts beträgt die Länge der Spalte post_name (die Spalte für Slugs) 200 Zeichen.

10
Eugene Manuilov

Ich vermute, es gibt selbst keine Begrenzung, aber die Eigenschaft des Feldes in der Datenbank für Schnecken ist möglicherweise auf eine maximale Länge festgelegt.

Also überprüfe die Datenbank!

3
Fredrik Weiland

Wahrscheinlich war das Problem überhaupt nicht direkt mit WordPress/Datenbank verbunden ...

Aber die Länge der URL überschritt 255 Zeichen (und nicht alle Webbrowser mögen das).

Was hier passierte, war möglicherweise eine URL mit mehr als 255 Zeichen, die beim Öffnen durch die Adressleiste des Browsers abgeschnitten wurde, wodurch ein fehlerhafter Permalink abgerufen wurde, der zu einer 4o4 führte.

Angenommen, die maximale Butzenlänge ist:

255 - die Länge von (Protokoll + FQDN + Permalink-Struktur) ...

  • basierend auf dem harten Limit eines Browsers.

Es darf aber nicht länger als 200 Zeichen sein ...

  • basierend auf der Feldgröße von post_name.

Auch wenn in diesem speziellen Fall etwas anderes die 4o4 verursacht haben könnte.

Es könnte sich auch um ein Zeichen handeln, das nicht richtig url_encoded ist. Die Gründe für 4o4s sind endlos ... Wurde es jemals als fehlerhafter Cluster auf der Festplatte oder als fehlerhaftes RAM Modul angesehen? :)

0
Martin Zeitler