Existe um comprimento máximo de lesma?

11

Um cliente acabou de criar um post com uma slug muito longa (90 caracteres), sem caracteres especiais (além de hífens), etc.

Sempre que o link para esse post foi clicado, incluindo os links "Visualizar" ou "Visualizar este post" do back-end do administrador, um 404 foi gerado.

Assim que aparamos manualmente a lesma, tudo funcionou como esperado. Isso é um "recurso" ou um "bug"?

EDIT: uma nota para todos aqueles que falam sobre limites de DB.

  

Se eu estivesse atingindo o limite do campo DB, a própria lesma seria   truncado. Pense nisso por um segundo. No caso da maioria dos WP   instalações, wp_posts.post_name é VARCHAR (200). Então, digamos que   alguém digita um título com > 200 caracteres. O que acontece? A lesma fica   truncado para 200 caracteres e armazenado em wp_posts.post_name. Não é como   alguém está entrando e digitando o título completo do post no   barra de endereços do navegador, substituindo os espaços com traços certo? o   URL está sendo gerado pelo WordPress, e está recebendo o URL do   tabela wp_posts.post_name e apenas colocando isso no atributo href   da marca de âncora. Então não vai haver uma disparidade lá. o   Toda a coisa DB é um arenque vermelho.

Em qualquer caso, o slug em questão é de apenas 90 caracteres, por isso não tem nada a ver com os limites de DB.

Existe alguma limitação conhecida em torno da reescrita?

    
por Tom Auger 23.05.2012 / 17:34

3 respostas

9

Devido à estrutura da tabela wp_posts, o comprimento da coluna post_name (a coluna de slugs) é igual a 200 caracteres.

    
por Eugene Manuilov 23.05.2012 / 17:48
2

Eu acho que não tem um limite por si só, mas a propriedade do campo no banco de dados para lesmas pode ser definida para um comprimento máximo.

Portanto, verifique o banco de dados!

    
por Fredrik Weiland 23.05.2012 / 17:50
0

Provavelmente o problema nem estava diretamente relacionado ao WordPress / banco de dados ...

Mas o tamanho do URL ultrapassou os 255 caracteres (e nem todos os navegadores da Web gostam disso).

O que aconteceu aqui pode ter sido um URL com mais de 255 caracteres, que foi truncado pela barra de endereços do navegador ao abri-lo ... causando a recuperação de um permalink ruim ... que resultou em um 4o4.

Então, assumable o comprimento máximo do slug pode ser:

255 - o comprimento de (protocolo + FQDN + estrutura de permalink) ...

  • com base no limite rígido de um navegador.

Mas não pode ter mais de 200 caracteres ...

  • com base no tamanho do campo do post_name.

Mesmo que algumas coisas possam ter causado o 4o4 neste caso particular.

Poderia ter sido um personagem que não foi devidamente codificado por url, razões para 4o4 são bastante infinitas ... já considerado um cluster ruim no disco rígido ou um módulo de RAM com defeito? :)

    
por Martin Zeitler 30.05.2012 / 06:28

Tags