¿Hay una longitud máxima de slug?

11

Un cliente acaba de crear una publicación con un slug muy largo (90 caracteres), sin caracteres especiales (excepto guiones) etc.

Siempre que se hizo clic en el enlace a esa publicación, incluidos los enlaces "Vista previa" o "Ver esta publicación" desde el extremo posterior del administrador, se generó un 404.

Una vez que recortamos manualmente la bala, todo funcionó como se esperaba. ¿Es esta una "característica" o un "error"?

EDITAR: una nota para todos aquellos que hablan sobre los límites de DB.

  

Si estuviera alcanzando el límite de campo de DB, entonces la bala en sí sería   truncado. Piénsalo un segundo. En el caso de la mayoría de WP   instalaciones, wp_posts.post_name es VARCHAR (200). Entonces, digamos que   alguien escribe un título con > 200 caracteres. ¿Lo que pasa? La babosa obtiene   truncado a 200 caracteres y almacenado en wp_posts.post_name. No es como   alguien entra y escribe el título completo de la publicación en el   barra de direcciones del navegador, sustituyendo los espacios con guiones ¿verdad? los   La URL está siendo generada por WordPress, y está recibiendo la URL de la   wp_posts.post_name en la tabla y solo colocando eso en el atributo href   de la etiqueta de anclaje. Entonces no habrá una disparidad allí. los   Todo el asunto del DB es una pista falsa.

En cualquier caso, la bala en cuestión tiene solo 90 caracteres, por lo que no tiene nada que ver con los límites de DB.

¿Existen limitaciones conocidas con respecto a la reescritura?

    
pregunta Tom Auger 23.05.2012 - 17:34

3 respuestas

9

Debido a la estructura de la tabla wp_posts, la longitud de la columna post_name (la columna para las babosas) es igual a 200 caracteres.

    
respondido por el Eugene Manuilov 23.05.2012 - 17:48
2

Supongo que no tiene un límite por sí mismo, pero la propiedad del campo en la base de datos para las babosas podría establecerse en una longitud máxima.

¡Así que revisa la base de datos!

    
respondido por el Fredrik Weiland 23.05.2012 - 17:50
0

Probablemente el problema no fue directamente relacionado con WordPress / database ...

Pero la longitud de la URL superó los 255 caracteres (y no todos los navegadores web hacen eso).

Lo que sucedió aquí podría haber sido una URL con más de 255 caracteres, que se truncó con la barra de direcciones del navegador al abrirla ... causando la recuperación de un enlace permanente incorrecto ... que resultó en un 4o4.

Entonces, supongamos que la longitud máxima de slug podría ser:

255: la longitud de (Protocolo + FQDN + estructura de enlace permanente) ...

  • basado en el límite duro de un navegador.

Pero no puede tener más de 200 caracteres ...

  • basado en el tamaño del campo post_name.

Incluso si algo más hubiera causado el 4o4 en este caso en particular.

Podría haber sido un personaje que no estaba correctamente url_codificado también, las razones para 4o4 son infinitas ... ¿Alguna vez considerado un clúster defectuoso en un disco duro o un módulo de RAM defectuoso? :)

    
respondido por el Martin Zeitler 30.05.2012 - 06:28

Lea otras preguntas en las etiquetas