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-Backend, 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?
Antworten:
Aufgrund der Tabellenstruktur von wp_posts beträgt die Länge der Spalte post_name (die Spalte für Slugs) 200 Zeichen.
quelle
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.
Überprüfen Sie also die Datenbank!
quelle
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) ...
Es darf aber nicht länger als 200 Zeichen sein ...
Auch wenn in diesem speziellen Fall etwas anderes die 4o4 verursacht haben könnte.
Es hätte auch ein Zeichen sein können, das nicht richtig url_encoded war. Die Gründe für 4o4s sind endlos ... jemals als fehlerhafter Cluster auf der Festplatte oder als fehlerhaftes RAM-Modul angesehen? :)
quelle