Quando lançamos nosso primeiro site WordPress com muito conteúdo, nunca pensamos que os títulos das postagens do blog seriam um problema. Alguns de nossos títulos mais longos estavam quebrando nosso belo layout, enquanto outros simplesmente pareciam desorganizados em dispositivos móveis.
Ao longo de anos gerenciando vários sites WordPress e ajudando proprietários de sites, descobrimos que cortar os títulos das postagens ajuda a garantir um visual consistente e refinado que mantém a atenção do seu público.
Neste guia, compartilharemos técnicas eficazes para encurtar automaticamente seus títulos de blog WordPress com PHP, ajudando você a manter tudo com uma aparência nítida.

Por que truncar títulos de postagens no WordPress com PHP?
Truncar títulos de postagens no WordPress com PHP lhe dá mais controle sobre o comprimento dos seus títulos de postagens e como eles são exibidos em seu site.
Por exemplo, você pode querer cortar títulos de postagens longos em sua página inicial para que eles não prejudiquem o design do seu blog WordPress.

Fazer isso também ajuda a manter seu blog visualmente agradável e fácil de navegar para seus leitores.
Observação: Se o seu objetivo é otimizar suas postagens de blog para SEO usando títulos mais curtos, o truncamento pode não ser necessário. Em vez disso, um plugin de SEO para WordPress pode simplificar a criação de tags de título de SEO curtas e eficazes.
Recomendamos o All in One SEO (AIOSEO) porque ele permite criar títulos de SEO personalizados para as páginas de resultados de pesquisa, mantendo títulos de postagem mais longos para seus visitantes em seu site.
Para mais detalhes, veja nosso guia definitivo sobre como configurar o AIOSEO corretamente.
Agora, vamos explorar duas maneiras de truncar títulos de postagens do WordPress em seu site usando PHP:
- Método 1: Truncar Títulos de Postagens do WordPress com uma Função do WordPress
- Método 2: Truncar Títulos de Postagens do WordPress com PHP Alterando Arquivos do Tema do WordPress
Método 1: Truncar Títulos de Postagens do WordPress com uma Função do WordPress
A maneira mais fácil de truncar títulos de postagens do WordPress é adicionando código PHP aos seus arquivos do WordPress. Se você nunca fez isso antes, confira nosso guia sobre como copiar e colar código no WordPress.
Muitos tutoriais dirão para adicionar código diretamente ao arquivo functions.php do seu tema. No entanto, qualquer erro pode causar problemas ou até mesmo quebrar seu site.
É por isso que recomendamos usar o plugin gratuito WPCode em vez disso. É uma ferramenta útil que facilita a adição e o gerenciamento de código personalizado em seu site WordPress, sem alterar os arquivos do tema diretamente.
Na WPBeginner, confiamos no plugin para adicionar e gerenciar nossos trechos de código personalizados. Você pode conferir nossa análise completa do WPCode para saber mais.
Primeiro, você precisa instalar e ativar o plugin gratuito WPCode. Se precisar de ajuda com isso, consulte nosso guia passo a passo sobre como instalar um plugin do WordPress.
Após a ativação, selecione Code Snippets » + Add Snippet na barra lateral do seu administrador. Em seguida, passe o mouse sobre a opção ‘Add Your Custom Code (New Snippet)’ e clique no botão ‘Add Custom Snippet’ que aparecer.

Isso abrirá uma nova página onde você pode digitar um título para o snippet e, em seguida, adicionar o código.
Simplesmente copie e cole o seguinte código na janela de visualização de código no WPCode.
function max_title_length( $title ) {
$max = 35;
if( strlen( $title ) > $max ) {
return substr( $title, 0, $max ). " …";
} else {
return $title;
}
}
add_filter( 'the_title', 'max_title_length');
É assim que deve ficar depois de adicionar o código.

Este código será executado dentro do loop de posts do seu WordPress e encurtará os títulos dos seus posts para 35 caracteres. Para alterar o comprimento do seu título, basta definir a variável $max para o comprimento de título de sua preferência.
Se precisar de ajuda, confira nosso artigo sobre como adicionar código personalizado no WordPress.
Em seguida, você precisa escolher ‘PHP Snippet’ no menu suspenso Tipo de Código.
Finalmente, você precisará ativar a configuração Ativo e, em seguida, salvar o snippet clicando no botão ‘Salvar Snippet’.

Agora que o snippet de código está ativo, os títulos das suas postagens de blog serão encurtados onde quer que apareçam no seu site WordPress.
Como mostrado na captura de tela abaixo, o título para em 35 caracteres e é seguido por reticências ‘…’ no final.

Método 2: Truncar Títulos de Postagens do WordPress com PHP Alterando Arquivos do Tema do WordPress
Outra maneira de truncar títulos de postagens do WordPress é adicionando código diretamente aos arquivos do seu tema WordPress.
Este método oferece mais controle sobre onde seus títulos são encurtados. Por exemplo, você pode querer cortar os títulos apenas na sua página inicial, mas exibir o título completo na postagem do blog.
⚠️ Dica Profissional: Antes de continuar com o Método 2, lembre-se de que atualizar seu tema pode sobrescrever alterações personalizadas.
Para manter seu site atualizado sem perder suas personalizações, confira nosso guia sobre como atualizar seu tema WordPress sem perder personalizações.
Para fazer isso, você precisará adicionar o código PHP diretamente aos arquivos do tema WordPress onde você deseja truncar os títulos das suas postagens de blog.
Por exemplo, você pode adicionar o trecho de código abaixo ao seu arquivo index.php para substituir a tag the_title existente dentro do seu loop de posts do WordPress para alterar o comprimento do título em todo o site:
<a href="<?php the_permalink() ?>">
<?php
$thetitle = $post->post_title; /* or you can use get_the_title() */
$getlength = strlen($thetitle);
$thelength = 25;
echo substr($thetitle, 0, $thelength);
if ($getlength > $thelength) echo "...";
?>
</a>
Este código define o comprimento do título do post para 25 caracteres. Se o comprimento do título for maior que 25 caracteres, ele cortará o título após 25 caracteres e adicionará reticências ‘…’ ao final.
Para alterar o comprimento dos caracteres do seu site, basta alterar a variável $thelength para a contagem de caracteres de sua preferência.
Depois de adicionar o código e salvar seu arquivo, você precisa carregá-lo no diretório do seu tema em sua conta de hospedagem WordPress.
Você pode fazer isso usando um cliente FTP ou a ferramenta de gerenciamento de arquivos no painel de controle da sua hospedagem WordPress. Se você nunca usou FTP antes, confira nosso guia sobre como usar FTP para carregar arquivos para WordPress.
Após o código ser adicionado, os títulos dos seus posts serão truncados para a contagem de caracteres que você definiu.
Esperamos que este artigo tenha ajudado você a aprender como truncar títulos de posts do WordPress com PHP. Você também pode querer ver nosso guia sobre como escrever um ótimo post de blog e nossas escolhas de especialistas das melhores ferramentas e plugins de marketing de conteúdo para WordPress.
Se você gostou deste artigo, por favor, inscreva-se em nosso Canal do YouTube para tutoriais em vídeo do WordPress. Você também pode nos encontrar no Twitter e no Facebook.


kzain
Uma ótima solução para limpar esses títulos longos!
Especialmente com manchetes chamativas, às vezes elas podem sair um pouco do controle. Esta função personalizada parece simples de implementar, embora eu possa precisar de um amigo para ajudar com a parte do PHP.
Achintha
Ei, existe uma função do WordPress para limitar palavras. É melhor usá-la.
http://codex.wordpress.org/Function_Reference/wp_trim_words
dustinporchia
Isso é ouro!….Obrigado wpbeginner!
adm_mnz
Se você usar mb_substr, há um parâmetro para codificação.
http://php.net/manual/en/function.mb-substr.php
Junaid
Ótimo! Estava procurando por um projeto de cliente
Marco
Alguém sabe como o título do link de previous_post_link(); pode ser truncado?
obrigado
Navegar
Obrigado, funcionou perfeitamente! Eu não queria acabar usando um plugin só para fazer isso e fiquei feliz que seu código cortou os títulos corretamente.
Obrigado novamente!
Joey Figaro
Olá – obrigado por escrever isso! Acabei encontrando outro exemplo de como conseguir isso e parecia muito mais simples, então vou compartilhar com você e ver o que você acha.
functions.php:
function new_excerpt_length($length) { return 100; } add_filter(‘excerpt_length’, ‘new_excerpt_length’);
Equipe Editorial
Estes são dois conceitos totalmente diferentes…. O que você recomenda é para resumos de posts, enquanto o que estamos falando é para Títulos de Posts.
Admin
Joey Figaro
Wow, that’s embarrassing.
Lena
Oi!
Isso não funciona se você usar outros idiomas além do inglês. Meu título sueco fica horrível porque o código não traduz å ä e ö em comparação com o código padrão. Alguma sugestão do que eu preciso fazer? Este é um bom truque e eu quero usá-lo.
Atenciosamente, Lillan
Equipe Editorial
Hmm… isso parece ser um problema sério. Será que você pode especificar o idioma via PHP, para que ele conte os caracteres nesse idioma em vez de em inglês?
Admin
Alex
You might wanna try to specify a different charset, check Latin1 or utf8 i think they contain those chars as well.. I had some similar issues recently since my first language is german
Equipe Editorial
Thank you for helping out Alex
Ben Kulbertis
Obrigado pelo Trackback!
Equipe Editorial
We appreciate your work for the community. Thanks for the nice snippet
Admin
Navjot Singh
Uma Sugestão, este tipo de código deve ser incluído em functions.php e não em index.php. Você pode usar tags condicionais para restringir o código a qualquer página que desejar, seja a página inicial ou qualquer outra página onde você queira.
Equipe Editorial
Isso é apenas para áreas específicas… Mas sim, pode ser personalizado e colocado em functions.php
Admin
Thomas Scholz
Não use strlen(). Use mb_strlen() ou strlen(utf8_decode($str)) ou você corre o risco de truncar a string dentro de um caractere multibyte. O mesmo se aplica a mb_substr().
Oh, and an ellipsis is one character: …
snipsley
Obrigado!! mb_strlen() e mb_substr resolveram meu problema de codificação. Procurei por isso por horas!
Lena Backstedt
Muito obrigado!
mb_strlen() também parece funcionar para a língua sueca (até onde posso ver)