
✂️ 5 Dicas para personalizar excertos no WordPress
Chega à página inicial do seu blogue e vê enormes blocos de artigos que se estendem por três ecrãs. Um leitor não percorre três ecrãs para ler um único artigo, vai-se embora. Ou o oposto: os resumos são cortados a meio de uma frase, a ligação «Ler mais» não aparece e o feed RSS parece um conjunto de fragmentos de frases sem princípio nem fim.
Por predefinição, o WordPress corta os resumos nas primeiras 55 palavras e acrescenta reticências padrão. Sem definições de comprimento, sem personalização do texto da ligação e os resumos nem sequer estão disponíveis para Páginas. Tudo isto pode ser corrigido, mas não marcando caixas de seleção, e sim adicionando algumas linhas de código.
Abaixo estão 5 técnicas funcionais: desde alterar o comprimento do resumo para todo o site até ao ajuste fino por categoria e à inserção automática de uma ligação «Ler mais». Cada uma com um snippet pronto a copiar e colar no functions.php.
💡 Visão geral rápida:
- Alterar o comprimento do resumo para todo o site com uma função no functions.php
- Definir comprimentos diferentes para categorias diferentes usando a condição in_category()
- Adicionar uma ligação «Ler mais» no final de cada resumo
- Ativar resumos para Páginas do WordPress com uma linha de código
- Gerir resumos sem programação usando o plugin Advanced Excerpt
O que são os resumos no WordPress e como funcionam
Um resumo é uma breve descrição de um artigo que aparece nas listas de artigos: na página inicial, nos arquivos de categorias, nos resultados de pesquisa e no RSS. Ao contrário da etiqueta <!--more-->, que corta o conteúdo num ponto arbitrário, o resumo é uma entidade independente: o WordPress ou usa o seu texto manual da metabox «Resumo» ou gera-o automaticamente a partir das primeiras 55 palavras do artigo.
Os resumos manuais têm sempre prioridade. Se preencheu o campo «Resumo» no editor, o sistema mostrará exatamente esse texto, ignorando o corte automático. Isto dá-lhe controlo total: pode escrever um sumário com significado em vez de se contentar com as duas primeiras frases que calham estar no início do texto.
O problema é que a metabox «Resumo» está oculta por predefinição. É ativada em «Opções de ecrã» (botão no topo da página de edição do artigo), marque a caixa ao lado de «Resumo» e o campo aparecerá abaixo do editor. Depois começa a personalização: as cinco técnicas abaixo cobrem todos os cenários típicos.
1. Alterar o comprimento do resumo através do functions.php
Esta é a base. O WordPress, por predefinição, corta às 55 palavras, o que não chega para uma pré-visualização clara, mas é suficiente para um leitor perceber o tópico. Se precisar de mais (ou menos), o filtro excerpt_length resolve a tarefa com uma função.
O que o código faz: substitui o número de palavras que o WordPress devolve em the_excerpt(). Não afeta os resumos manuais; se preencheu o campo no editor, será exibido tal como está.
- Abra o
functions.phpno seu tema (Aparência → Editor de Tema →functions.php) ou via FTP - Adicione no final do ficheiro (antes de
?>se existir):
1 function my_excerpt_length($length) { 2 return 110; 3 } 4 add_filter('excerpt_length', 'my_excerpt_length');
- Guarde o ficheiro
O número 110 é a contagem de palavras. Para um blogue típico, 80 a 120 palavras dão 3 a 4 frases, o suficiente para uma pré-visualização com significado sem sobrecarregar a página inicial. Os leitores de RSS também vão apreciar: eles têm os seus próprios limites e um resumo demasiado longo pode ser cortado de forma mais agressiva do que planeou.
Se estiver a usar um tema de blocos (Block Theme, FSE), o functions.php pode estar em falta ou não funcionar como esperado. Nesse caso, crie um tema filho ou use o plugin Code Snippets, que adiciona snippets sem editar os ficheiros do tema.
2. Comprimentos de resumo diferentes para categorias diferentes
As notícias precisam de 30 palavras, enquanto as análises e os guias precisam de 100 a 120. O filtro excerpt_length na sua versão básica dá um valor para todo o site, sem flexibilidade. O código seguinte separa o comprimento por categoria.
Cenário A, uma categoria com um comprimento especial. Tem uma categoria «Reviews» onde os resumos devem ser mais curtos:
1 function excerpt_length_category($length) { 2 if (in_category('Reviews')) { 3 return 20; 4 } else { 5 return 60; 6 } 7 } 8 add_filter('excerpt_length', 'excerpt_length_category');
Substitua Reviews pelo slug da sua categoria e os números pelo que precisa.
Cenário B, várias categorias com comprimentos diferentes. Uma cascata if/elseif/else cobre três níveis: uma categoria, um grupo de categorias e todo o resto:
1 function excerpt_length_category($length) { 2 if (in_category('Review')) { 3 return 35; 4 } elseif (in_category(array('News', 'Videos', 'Editorial'))) { 5 return 60; 6 } else { 7 return 55; 8 } 9 } 10 add_filter('excerpt_length', 'excerpt_length_category');
O in_category() aceita um slug de categoria (string) ou um array de slugs. As condições são verificadas por ordem, sendo acionada a primeira correspondência. No exemplo acima: os artigos de «Review» recebem 35 palavras, os de «News», «Videos» e «Editorial» recebem 60, todo o resto recebe 55.
Depois de guardar, verifique a página inicial e algumas páginas de categoria; os comprimentos dos resumos devem diferir dependendo da categoria a que o artigo está atribuído.
3. Adicionar uma ligação «Ler mais» no final do resumo
O resumo é cortado e os leitores nem sempre percebem que se trata apenas de uma pré-visualização e não do artigo completo. Uma ligação no final do resumo resolve o problema: um apelo explícito para clicar e ler na íntegra.

O WordPress, por predefinição, coloca [...] onde corta, mas isso não é uma ligação. O filtro excerpt_more substitui as reticências por uma string personalizada contendo HTML:
1 function excerpt_readmore($more) { 2 return '... <a href="' . get_permalink($post->ID) . '" class="readmore">' . 'Read More' . '</a>'; 3 } 4 add_filter('excerpt_more', 'excerpt_readmore');
O que pode alterar:
- Texto da ligação, substitua
Read Morepela sua versão, por exemploContinue readingouLearn more - Classe CSS,
readmoreno atributoclasspode ser substituída pela sua própria e estilizada via CSS (cor, tamanho, espaçamento, sublinhado) - Separador, as reticências com espaço
'... 'antes da etiqueta<a>podem ser removidas ou substituídas por|ou,
Depois de guardar, abra a página inicial do blogue ou o arquivo; cada resumo terá uma ligação clicável para o artigo completo no final. Isto também funciona no RSS (a maioria dos leitores exibe corretamente as ligações HTML).
4. Ativar resumos para Páginas do WordPress
As Páginas no WordPress não suportam resumos de raiz. O tipo de publicação page não está registado com suporte para excerpt e a metabox não aparece no editor, mesmo que a ative nas «Opções de ecrã». Mas, por vezes, é necessário: uma página de destino com pré-visualizações de páginas filhas, saída personalizada via WP_Query, páginas de serviço como cartões.
A solução é uma função que adiciona suporte de resumo ao tipo de publicação page:
1 function wploop_pages_excerpt() { 2 add_post_type_support('page', 'excerpt'); 3 } 4 add_action('init', 'wploop_pages_excerpt');
Depois de guardar o ficheiro functions.php:
- Vá ao editor de qualquer página
- Clique em «Screen Options» no topo
- Marque a caixa «Excerpt», que agora já aparece
- Desça a página, o campo de excerto já está visível
Se estiver a usar um custom post type (CPT), substitua page pelo slug do seu CPT, a mecânica é a mesma. Ao registar um CPT através de register_post_type() pode especificar de imediato 'supports' => array(..., 'excerpt') e evitar código adicional.
5. Gerir excertos com o plugin Advanced Excerpt
Não quer mexer em código? O plugin Advanced Excerpt oferece controlo visual sobre todos os aspetos dos excertos através do painel de administração.

Após a instalação e ativação (gratuito, do repositório do WordPress), surge uma página Advanced Excerpt no menu «Settings» com as seguintes opções:
- Comprimento do excerto, em carateres ou palavras. Os carateres são mais precisos para controlo de layout, as palavras para legibilidade
- Reticências, o símbolo ou código HTML que termina o excerto. O padrão é
…(reticências…). Pode ser substituído por[...], uma seta, um ícone ou deixado em branco - Método de corte, por carateres (uma palavra pode ser cortada a meio) ou por frases (garante uma frase completa, mas o excerto será mais longo do que o limite definido)
- Link «Ler mais», ativar/desativar, definir texto, envolver em HTML personalizado
- Não mostrar excertos manuais, se ativado, o plugin gera excertos automaticamente sempre, mesmo que tenha preenchido o campo manualmente
- Remover shortcodes do excerto, mantenha isto definitivamente ativado para que
[contact-form-7]ou[shortcode]não apareçam na pré-visualização - Filtro, escolha qual a função que o tema usa para apresentar os excertos:
the_excerpt(),the_content()ou ambas. Se tiver dúvidas, deixe ambas as caixas de seleção ativas

O plugin usa os mesmos hooks excerpt_length e excerpt_more do código manual das dicas 1 a 3, mas envolve-os numa interface. A documentação para programadores no GitHub Wiki descreve filtros para integração personalizada.
Em 2026, o plugin está ativo em mais de 80 000 sites, mas é atualizado com pouca frequência: a última versão saiu em janeiro de 2024 e está testada até ao WordPress 6.4. Antes de instalar numa versão recente do WordPress, verifique a compatibilidade num ambiente de testes.
Antes de passar às perguntas frequentes, um pequeno vídeo sobre como trabalhar com excertos no WordPress na prática:
⁉️🤔 Perguntas frequentes
Qual é a diferença entre um excerto manual e a tag <!--more-->?
Um excerto é um campo separado que é apresentado através da função
the_excerpt()nos templates do tema. A tag<!--more-->é inserida no corpo do artigo e cortathe_content()num ponto específico. Os excertos são mostrados em listas de artigos e no RSS, a tag more só funciona ondethe_content()é usado. Para um breve resumo em arquivos, use excertos; para cortar um artigo longo na página inicial, a tag more é suficiente.
Porque é que o excerto não aparece, mesmo eu tendo-o escrito no editor?
O tema não chama
the_excerpt()no template necessário. Verifique os templates archive.php, category.php, home.php e search.php. Se estiver láthe_content(), os excertos manuais são ignorados. Substitua porthe_excerpt()ou use uma construção condicionalif (has_excerpt()) { the_excerpt(); } else { the_content(); }.
Posso mostrar uma imagem destacada ao lado do excerto?
Sim, o tema deve chamar
the_post_thumbnail()antes dethe_excerpt()no loop. A maioria dos temas WordPress modernos faz isto por defeito. Se não fizer, adicione a chamada da imagem destacada ao template antes do excerto. Para marcação personalizada, envolva ambas as chamadas em<div class="post-card">e estilize via CSS.
Como removo excertos apenas da página inicial, mantendo-os nos arquivos?
Use a tag condicional
is_home()dentro do filtro. Por exemplo, nofunctions.php:
1 function disable_excerpt_on_home($excerpt) { 2 if (is_home()) { 3 return ''; 4 } 5 return $excerpt; 6 } 7 add_filter('get_the_excerpt', 'disable_excerpt_on_home');
Para definições mais precisas por tipo de página, categoria ou tipo de conteúdo, use o plugin Advanced Excerpt da dica 5: as suas definições têm caixas de seleção «Disable on...» para página inicial, arquivos, pesquisa e páginas individuais.
O que fazer com os excertos agora mesmo
Ordem de implementação, do simples ao complexo. Comece pela dica 1: uma função, um número e o comprimento do excerto em todo o site fica sob controlo. Depois adicione o link «Ler mais» (dica 3), isto é fundamental para a taxa de cliques na página inicial e no RSS. Se gere um blogue com secções de formatos diferentes, a dica 2 sobre o comprimento por categoria eliminará a dissonância entre notícias e artigos longos.
Use o plugin Advanced Excerpt (dica 5) se quiser evitar código por completo ou se o seu tema usar uma forma não padrão de apresentar conteúdo e os filtros excerpt_length/excerpt_more não forem acionados. Nos outros casos, o código no functions.php é mais fiável: menos dependências, não cria carga adicional, funciona com qualquer tema.
1



