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 confusos 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 uma aparência consistente e refinada que prende a atenção do seu público.
Neste guia, compartilharemos técnicas eficazes para encurtar automaticamente os títulos do seu blog no WordPress com PHP, ajudando-o a manter tudo com boa aparência.

Por que truncar os títulos das postagens no WordPress com PHP?
O truncamento de títulos de postagens no WordPress com PHP oferece mais controle sobre o tamanho dos títulos das postagens e como eles são exibidos no site.
Por exemplo, talvez você queira cortar os títulos de postagens longas na página inicial para que eles não atrapalhem o design do seu blog WordPress.

Isso também ajuda a manter seu blog visualmente agradável e fácil de navegar para seus leitores.
Observação: se sua meta for otimizar as publicações do blog para SEO usando títulos mais curtos, talvez não seja necessário truncar. Em vez disso, um plug-in de SEO do WordPress pode simplificar a criação de tags de título curtas e eficazes para SEO.
Recomendamos o All in One SEO (AIOSEO) porque ele permite que você crie títulos de SEO personalizados para as páginas de resultados de pesquisa e, ao mesmo tempo, mantenha títulos de posts mais longos para os visitantes em seu site.
Para obter mais detalhes, consulte nosso guia definitivo sobre como configurar o AIOSEO corretamente.
Agora, vamos explorar duas maneiras de truncar os títulos das postagens do WordPress em seu site usando PHP:
Método 1: Truncar os títulos das postagens do WordPress com uma função do WordPress
A maneira mais fácil de truncar os títulos das postagens no WordPress é adicionar código PHP aos seus arquivos do WordPress. Se você nunca fez isso antes, consulte nosso guia sobre como copiar e colar código no WordPress.
Muitos tutoriais lhe dirão para adicionar o código diretamente ao arquivo functions.php do seu tema. No entanto, qualquer erro pode causar erros ou até mesmo quebrar seu site.
Por isso, recomendamos o uso do plug-in gratuito WPCode. Trata-se de uma ferramenta útil que facilita a adição e o gerenciamento de códigos personalizados em seu site WordPress, sem alterar diretamente os arquivos do tema.
No WPBeginner, contamos com o 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 plug-in do WordPress.
Após a ativação, selecione Code Snippets ” + Add Snippet na barra lateral do administrador. Em seguida, passe o mouse sobre a opção “Add Your Custom Code (New Snippet)” (Adicionar seu código personalizado (novo snippet)) e clique no botão “Add Custom Snippet” (Adicionar snippet personalizado) exibido.

Isso abrirá uma nova página na qual você poderá digitar um título para o snippet e, em seguida, adicionar o código.
Basta copiar e colar o código a seguir no painel 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');
Esta é a aparência que deve ter depois que você adicionar o código.

Esse código será executado dentro do loop de postagem do WordPress e encurtará os títulos das postagens do blog para 35 caracteres. Para alterar o tamanho do título, basta definir a variável $max
com o tamanho de título de sua preferência.
Se precisar de ajuda, consulte nosso artigo sobre como adicionar código personalizado no WordPress.
Em seguida, você precisa escolher “PHP Snippet” no menu suspenso Code Type (Tipo de código).
Por fim, você precisará ativar a configuração Active e, em seguida, salvar o snippet clicando no botão “Save Snippet”.

Agora que o snippet de código está ativo, os títulos das postagens do seu blog serão encurtados sempre que aparecerem no site do WordPress.
Como mostrado na captura de tela abaixo, o título para em 35 caracteres e é seguido por elipses ‘…’ no final.

Método 2: Truncar os títulos das postagens do WordPress com PHP alterando os arquivos do tema do WordPress
Outra maneira de truncar os títulos das postagens do WordPress é adicionar código diretamente aos arquivos de tema do WordPress.
Esse método lhe dá mais controle sobre onde os títulos são encurtados. Por exemplo, talvez você queira cortar os títulos apenas na 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 a atualização do tema pode substituir as alterações personalizadas.
Para manter seu site atualizado sem perder suas personalizações, confira nosso guia sobre como atualizar seu tema do WordPress sem perder a personalização.
Para fazer isso, você precisará adicionar o código PHP diretamente aos arquivos de tema do WordPress onde deseja truncar os títulos das publicações do 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 loop de postagem 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>
Esse código define o tamanho do título da postagem como 25 caracteres. Se o tamanho do título for maior que 25 caracteres, ele cortará o título após 25 caracteres e adicionará uma elipse ‘…’ ao final.
Para alterar o tamanho dos caracteres de 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 o arquivo, você precisa carregá-lo no diretório de temas da sua conta de hospedagem do 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 o FTP antes, confira nosso guia sobre como usar o FTP para fazer upload de arquivos no WordPress.
Depois que o código for adicionado, os títulos das postagens serão truncados de acordo com a contagem de caracteres que você definiu.
Esperamos que este artigo tenha ajudado você a aprender como truncar títulos de posts no WordPress com PHP. Talvez você também queira ver nosso guia sobre como escrever uma ótima postagem de blog e nossas escolhas de especialistas das melhores ferramentas e plug-ins de marketing de conteúdo para WordPress.
Se você gostou deste artigo, inscreva-se em nosso canal do YouTube para receber tutoriais em vídeo sobre o WordPress. Você também pode nos encontrar no Twitter e no Facebook.
Achintha
Hey There is a wordpress function for limit words. Better to use that.
http://codex.wordpress.org/Function_Reference/wp_trim_words
dustinporchia
This is golden!….Thanks wpbeginner!
adm_mnz
If you use mb_substr there is a parameter for encoding.
http://php.net/manual/en/function.mb-substr.php
Junaid
Sweet! was just looking for a clients project
Marco
Does anybody know how the link title of previous_post_link(); could be truncated?
thanks
Brow
Thanks this worked perfectly! I didn’t want to end up using a plugin just to do this and was happy your code cut down the titles properly.
Thanks again!
Joey Figaro
Hey there – thanks for writing this up! I happened to stumble upon another example of how to achieve this and it seemed a lot more simple, so I will share it with you and see what you think.
functions.php:
function new_excerpt_length($length) {
return 100;
}
add_filter(‘excerpt_length’, ‘new_excerpt_length’);
Editorial Staff
These are two entirely different concepts…. The one you recommend is for post excerpts whereas the one we are talking about is for Post Titles.
Admin
Joey Figaro
Wow, that’s embarrassing.
Lena
Hi!
This doesn’t work if you use other languages than english. My swedish titel looks awful because the code doesn’t translate å ä and ö comparing to the default code. Any suggestions of what I have to do? This is a good trick and i want to use it.
Kindly Lillan
Editorial Staff
Hmm… that does sound like a serious issue. Wondering if you can specify the language via PHP, so it counts characters in that instead of english.
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
Editorial Staff
Thank you for helping out Alex
Ben Kulbertis
Thanks for the Trackback!
Editorial Staff
We appreciate your work for the community. Thanks for the nice snippet
Admin
Navjot Singh
One Suggestion, this type of code should be included in functions.php and not index.php. You can use conditional tags to restrict the code to any page you want whether its the homepage or any other page where you want.
Editorial Staff
This is just for specific areas… But yes, it can be customized and placed in functions.php
Admin
Thomas Scholz
Don’t use strlen(). Use mb_strlen() or strlen(utf8_decode($str)) or you risk to truncate the string inside of a multi-byte character. The same applies to mb_substr().
Oh, and an ellipsis is one character: …
snipsley
Thanks!! mb_strlen() a mb_substr solved my encoding problem. I’ve been looking for this for hours!
Lena Backstedt
BIG tnx!
mb_strlen() also seems to work for the swedish language (so far I can see)