Personalizando o resumo(the_excerpt) do WordPress

Blog fellyph cintra - Personalizando o resumo do WordPress

Um dos recursos que o WordPress oferece na leitura do conteúdo do post é a função de resumo(the_excerpt), No painel de edição existe um campo chamado resumo.

Nas versões 5.3 ou superiores do WordPress essa função está disponível no painel lateral de configuração do documento. Para exibir esta opção vá ao painel lateral direito no seu editor de posts selecione a opção documento na imagem abaixo:

Painel lateral WordPress

Agora a opção de resumo ficará disponível ao final do painel lateral próximo a aba de imagem destacada:

Definindo o conteúdo do the_excerpt via editor

Cadastrando essa informação, se você quer exibi-lá é só utilizar a função the_excerpt() dentro do seu loop.

Se o campo resumo não for definido, o WordPress criará um resumo automaticamente através do que foi postado no conteúdo principal do seu post. Por padrão esse resumo automático possui 55 caracteres, para alterar essa quantidade de palavras temos que adicionar uma função no arquivo functions.php no seu tema.

Como adicionar código no WordPress?

Primeiramente, se iremos realizar uma alteração em produção precisamos realizar um backup da nossa aplicação. Especialmente se você não está familiarizado com código.

A opção mais simples é alterando o código do functions.php esse processo é válido quando você possui um tema que não tem atualizações constantes. Caso contrário um tema filho ou um plugin será a melhor opção, porque as suas alterações não serão afetadas caso o tema principal seja atualizado.

O functions.php resumindo em meias-palavras é o arquivo que define algumas funções extras do seu tema, além de criar menus, shortcodes e adicionar filtros para conteúdo como vamos fazer agora. Então, utilizando a função add_filter ela ajuda a modificar o comportamento padrão da impressão de resumos no nosso WordPress.

Editando o conteúdo do seu the_excerpt via código

Para editar o tamanho do resumo adicionamos o seguinte código no functions.php:

function novo_tamanho_do_resumo($length) { return 30; } add_filter('excerpt_length', 'novo_tamanho_do_resumo');
Code language: PHP (php)

No código acima modificamos o tamanho do resumo de 55(valor padrão) para 30 caracteres.

Quando não cadastramos nada no campo resumo, o WordPress resgata parte do conteúdo do post e adiciona no final do resumo […] para sinalizar que o possui mais texto naquele conteúdo. Para modificar essa sinalização também dentro do functions.php adicionamos o seguinte filtro:

Para versões 2.9 ou superiores

function new_excerpt_more($more) { return '...'; } add_filter('excerpt_more', 'new_excerpt_more');
Code language: PHP (php)

Para versão 2.8.x e anteriores

function new_excerpt_more($excerpt) { return str_replace('[...]', '...', $excerpt); } add_filter('wp_trim_excerpt', 'new_excerpt_more');
Code language: PHP (php)

Nesse caso temos uma mudança de código entre versões antes e depois da 2.9, mas nos dois momentos trocamos o ‘[…]’ por ‘…’.

Além dessa possibilidade também temos uma segunda opção adicionar um link ao final só resumo, trocar o ‘[…]’ por um link leia mais o código ficaria da seguinte forma:

function add_resumo_com_link($more) { global $post; return '<a href="'. get_permalink($post->ID) . '">Leia mais +</a>'; } add_filter('excerpt_more', 'add_resumo_com_link');
Code language: PHP (php)

Essas são algumas possibilidades para personalização do resumo na sua aplicação WordPress para mais tutoriais relacionados acesse a página da categoria.

Por Fellyph Cintra

Fellyph Cintra é um Google Developer Expert focado em tecnologias web, com participação ativa na comunidade WordPress. Com mais de 14 anos de experiência no mercado, Fellyph já palestrou em mais de 30 eventos ao redor do Brasil e Europa, sempre abordando as boas práticas de desenvolvimento na web.

10 comentários

  1. Olá.
    Estou testando em local aqui.
    Aqui ele limita meu resumo por Palavras, e não por caracteres. O problema é que palavras de tamanhos diferentes acabam deixando sem um padrão legal, pq estou usando duas colunas. Como faço para forçá-lo a contar caracteres, e não palavras?

    function twentyeleven_child_excerpt_length( $length ) {
    return 20;
    }
    add_filter( ‘excerpt_length’, ‘twentyeleven_child_excerpt_length’ );

  2. Para limitar por caracteres e não por palavras, basta fazer o seguinte:

    -> no function.php:
    function except_limit($maximo) {
    $except = get_the_excerpt();
    if ( strlen($except) > $maximo ) {
    $continue = ‘…’;
    }
    $except = mb_substr( $except, 0, $maximo, ‘UTF-8’ );
    echo $except.$continue;
    }

    -> no loop do WordPress:
    #Função onde 155 é o número de caracteres 😉

Deixe um comentário

O seu endereço de e-mail não será publicado.