Există o limită maximă pentru lungimea slug-ului?
Un client a creat recent un articol cu un slug foarte lung (90 de caractere), fără caractere speciale (în afară de liniuțe) etc.
De fiecare dată când se accesa linkul către acel articol, inclusiv prin linkurile "Previzualizare" sau "Vezi articolul" din panoul de administrare, se genera o eroare 404.
După ce am scurtat manual slug-ul, totul a funcționat corespunzător. Este aceasta o "caracteristică" sau un "bug"?
EDIT: O notă pentru cei care menționează limitele bazei de date.
Dacă aș fi depășit limita câmpului din baza de date, atunci slug-ul în sine ar fi fost trunchiat. Gândiți-vă un moment. În cazul majorității instalărilor WP, wp_posts.post_name este VARCHAR(200). Deci, să presupunem că cineva introduce un titlu cu > 200 de caractere. Ce se întâmplă? Slug-ul este trunchiat la 200 de caractere și stocat în wp_posts.post_name. Nu e ca și cum cineva introduce manual titlul complet al articolului în bara de adrese a browserului, înlocuind spațiile cu liniuțe, nu? URL-ul este generat de WordPress, care îl ia din tabela wp_posts.post_name și îl pune în atributul href al tag-ului anchor. Deci nu poate exista o discrepanță acolo. Discuția despre baza de date este o heringă roșie.
În orice caz, slug-ul în cauză are doar 90 de caractere, deci nu are nicio legătură cu limitele bazei de date.
Există limitări cunoscute ale sistemului de rewrite?

@TomAuger & Eugene - puteți confirma problema, pentru că Tom spune că slug-ul avea 90 de caractere. Știu că limita este de 200, dar asta nu include URL-ul principal, nu-i așa?

Probabil problema nici măcar nu a fost direct legată de WordPress sau de baza de date...
Ci lungimea URL-ului a depășit 255 de caractere (și nu toate browserele web acceptă asta).
Ceea ce s-a întâmplat aici ar fi putut fi un URL mai lung de 255 de caractere, care a fost trunchiat de bara de adrese a browserului la deschidere... ceea ce a dus la preluarea unui permalink incorect... și la un eroare 404.
Deci, probabil lungimea maximă a slug-ului ar putea fi:
255 - lungimea (Protocol + FQDN + structura permalinkului)...
- pe baza unei limite hard impuse de browser.
Dar nu poate fi mai lung de 200 de caractere...
- pe baza dimensiunii câmpului post_name.
Chiar dacă altceva ar fi putut cauza eroarea 404 în acest caz particular.
Ar fi putut fi și un caracter care nu a fost codat corect prin url_encode, motivele pentru erori 404 sunt aproape infinite... ai luat vreodată în considerare un cluster defect pe HDD sau un modul de RAM defect? :)

GUID-ul nu este URL-ul. Doar că arată ca unul, dar nu este folosit pentru a citi o cerere. Dacă muți WordPress de pe un domeniu pe altul, GUID-ul nu va fi schimbat. Vezi http://core.trac.wordpress.org/ticket/6492 și http://core.trac.wordpress.org/ticket/10857.

Păi, pentru ce altceva decât scopuri de identificare ar trebui folosit un ID unic atunci? Adică, întrebarea practic este: Care este motivul pentru care este aruncată o eroare 404 în acest caz?

Eroarea 404 și GUID-ul nu sunt legate, cred. WordPress pur și simplu nu folosește GUID-ul atunci când caută un articol care să corespundă unui URL.

Cred că ai dreptate în privința asta... post_name și GUID pot fi excluse ca surse ale problemei - ce rămâne sunt permalink-urile și re-scrierile. Fără fișierele de log Apache sau altceva, asta este doar o presupunere ;)

@syslogic Cred că re-scrierile sunt probabil cauza și merită investigat mai departe. URL-ul, inclusiv partea cu http://, era încă sub 128 de caractere, așa că nu cred că depășește limita dură a browserului privind lungimea URL-ului.
