Un client vient de créer une publication avec un slug très long (90 caractères), pas de caractères spéciaux (autres que des tirets), etc.
Chaque fois que le lien vers cette publication a été cliqué, y compris les liens "Aperçu" ou "Afficher cette publication" du back-end Admin, un 404 a été généré.
Une fois que nous avons coupé manuellement la limace, tout a fonctionné comme prévu. Est-ce une fonctionnalité ou un bug"?
EDIT: une note pour tous ceux qui parlent des limites de DB.
Si j'atteignais la limite de champ DB, le slug lui-même serait tronqué. Réfléchis-y une seconde. Dans le cas de la plupart des installations WP, wp_posts.post_name est VARCHAR (200). Supposons donc que quelqu'un tape un titre avec> 200 caractères. Ce qui se produit? Le slug est tronqué à 200 caractères et stocké dans wp_posts.post_name. Ce n'est pas comme si quelqu'un entrait et tapait le titre complet du message dans la barre d'adresse du navigateur, en remplaçant les espaces par des tirets, non? L'URL est générée par WordPress, et elle obtient l'URL de la table wp_posts.post_name et la met simplement dans l'attribut href de la balise d'ancrage. Il n'y aura donc pas de disparité là-bas. Le tout DB est un hareng rouge.
Dans tous les cas, le slug en question n'est que de 90 caractères, donc cela n'a rien à voir avec les limites de DB.
Existe-t-il des limitations connues concernant la réécriture?
Réponses:
En raison de la structure de la table wp_posts, la longueur de la colonne post_name (la colonne pour les limaces) est égale à 200 caractères.
la source
Je suppose qu'il n'a pas de limite par lui-même, mais la propriété du champ dans la base de données pour les limaces peut être définie sur une longueur maximale.
Alors vérifiez la base de données!
la source
Le problème n'était probablement même pas directement lié à WordPress / base de données ...
Mais la longueur de l'URL dépassait 255 caractères (et tous les navigateurs Web ne font pas comme ça).
Ce qui s'est passé ici pourrait avoir été une URL de plus de 255 caractères, qui a été tronquée par la barre d'adresse du navigateur lors de son ouverture ... provoquant la récupération d'un mauvais permalien ... qui a abouti à un 4o4.
On peut donc supposer que la longueur maximale du slug pourrait être:
255 - la longueur de (Protocole + FQDN + structure de permalien) ...
Mais il ne peut pas dépasser 200 caractères ...
Même si quelque chose d'autre aurait pu causer le 4o4 dans ce cas particulier.
Il aurait pu s'agir d'un personnage qui n'était pas correctement encodé en url également, les raisons des 4o4 sont infinies ... avez-vous déjà considéré un mauvais cluster sur le disque dur ou un module RAM défectueux? :)
la source