Klien baru saja membuat posting dengan slug yang sangat panjang (90 karakter), tidak ada karakter khusus (selain tanda hubung) dll.
Setiap kali tautan ke pos itu diklik, termasuk tautan "Pratinjau" atau "Lihat posting ini" dari bagian belakang Admin, 404 dibuat.
Setelah kami memangkas siput secara manual, semuanya berjalan seperti yang diharapkan. Apakah ini "fitur" atau "bug"?
EDIT: Catatan untuk semua yang berbicara tentang batas DB.
Jika saya mencapai batas bidang DB, maka siput itu sendiri akan terpotong. Pikirkan sebentar. Dalam kasus kebanyakan instalasi WP, wp_posts.post_name adalah VARCHAR (200). Jadi, katakanlah seseorang mengetik judul dengan> 200 karakter. Apa yang terjadi? Siput akan dipotong menjadi 200 karakter dan disimpan di wp_posts.post_name. Ini tidak seperti seseorang masuk dan mengetik judul lengkap dari pos di bilah alamat browser, mengganti spasi dengan tanda hubung kan? URL sedang dibuat oleh WordPress, dan itu mendapatkan URL dari tabel wp_posts.post_name dan hanya menempatkannya di atribut href dari tag anchor. Jadi tidak akan ada disparitas di sana. Seluruh hal DB adalah herring merah.
Dalam kasus apa pun, siput yang dimaksud hanya 90 karakter, sehingga tidak ada hubungannya dengan batas DB.
Adakah batasan yang diketahui tentang penulisan ulang?
Jawaban:
Karena struktur tabel wp_posts panjang kolom post_name (kolom untuk siput) sama dengan 200 karakter.
sumber
Saya kira itu tidak memiliki batasnya sendiri tetapi properti bidang dalam database untuk siput mungkin diatur ke panjang maksimal.
Jadi periksa Database!
sumber
Mungkin masalahnya bahkan tidak secara langsung terkait dengan WordPress / database ...
Tetapi panjang URL melebihi 255 karakter (dan tidak semua browser web melakukan hal itu).
Apa yang terjadi di sini mungkin URL yang lebih panjang dari 255 karakter, yang terpotong oleh bilah alamat peramban saat membukanya ... menyebabkan pengambilan permalink yang buruk ... yang menghasilkan 4o4.
Jadi diasumsikan panjang siput maksimum mungkin:
255 - panjang (Protokol + FQDN + struktur permalink) ...
Tapi tidak lebih dari 200 karakter ...
Bahkan jika ada hal lain yang menyebabkan 4o4 dalam kasus khusus ini.
Bisa jadi karakter yang tidak url_encoded juga dengan baik, alasan 4o4 cukup tak terbatas ... pernah dianggap cluster yang buruk pada HDD atau modul RAM yang rusak? :)
sumber