Klient właśnie utworzył post z naprawdę długim ślimakiem (90 znaków), bez znaków specjalnych (innych niż łączniki) itp.
Za każdym razem, gdy kliknięto link do tego postu, w tym linki „Podgląd” lub „Wyświetl ten post” z zaplecza administratora, wygenerowano 404.
Po ręcznym przycięciu ślimaka wszystko działało zgodnie z oczekiwaniami. Czy to „funkcja” czy „błąd”?
EDYCJA: Uwaga dla wszystkich mówiących o limitach DB.
Gdybym osiągnął limit pola DB, sam ślimak zostałby obcięty. Pomyśl o tym przez chwilę. W przypadku większości instalacji WP nazwa wp_posts.post_name to VARCHAR (200). Powiedzmy, że ktoś pisze tytuł z> 200 znakami. Co się dzieje? Ślimak zostaje obcięty do 200 znaków i przechowywany w wp_posts.post_name. To nie jest tak, że ktoś wchodzi i wpisuje pełny tytuł wpisu w pasku adresu przeglądarki, zastępując spacje myślnikami, prawda? URL jest generowany przez WordPress i pobiera adres URL z tabeli wp_posts.post_name i po prostu umieszcza go w atrybucie href tagu anchor. Więc nie będzie tam rozbieżności. Cała sprawa DB to czerwony śledź.
W każdym razie ten ślimak ma tylko 90 znaków, więc nie ma to nic wspólnego z limitami DB.
Czy są jakieś znane ograniczenia dotyczące przepisywania?
Odpowiedzi:
Ze względu na strukturę tabeli wp_posts długość kolumny post_name (kolumna dla ślimaków) wynosi 200 znaków.
źródło
Wydaje mi się, że sam nie ma limitu, ale właściwość pola w bazie danych dla ślimaków może być ustawiona na maksymalną długość.
Więc sprawdź bazę danych!
źródło
Prawdopodobnie problem nie był w ogóle bezpośrednio związany z WordPress / bazą danych ...
Ale długość adresu URL przekroczyła 255 znaków (i nie wszystkie przeglądarki tak robią).
To, co się tutaj wydarzyło, mogło być adresem URL dłuższym niż 255 znaków, który został obcięty przez pasek adresu przeglądarki podczas otwierania go ... powodując pobranie złego permalink ... co spowodowało 4o4.
Tak więc możliwa do przyjęcia maksymalna długość ślimaka może wynosić:
255 - długość (Protokół + FQDN + struktura bezpośredniego łącza) ...
Ale nie może być dłuższy niż 200 znaków ...
Nawet jeśli coś innego mogło spowodować 4o4 w tym konkretnym przypadku.
Mogła to być postać, która również nie została poprawnie zakodowana, przyczyny 4o4 są dość nieskończone ... kiedykolwiek uważany za zły klaster na HDD lub wadliwy moduł RAM? :)
źródło