Blog fellyph cintra - Personalizando o resumo do WordPress

Personalizando o resumo(the_excerpt) 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
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
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.


Publicado

em

, ,

por

Comentários

10 respostas para “Personalizando o resumo(the_excerpt) do WordPress”

  1. Avatar de Jeferson
    Jeferson

    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. Avatar de Jeferson

    Realmente cara é por palavras

    Tem esse plugin :
    http://wordpress.org/extend/plugins/advanced-excerpt/

    tem uma solução simples com php :

    mas pode quebrar se tiver alguma tag html

    A melhor solução seria criar uma função no functions :

    http://bavotasan.com/2009/limiting-the-number-of-words-in-your-excerpt-or-content-in-wordpress/

  3. Avatar de Tiago Pires

    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 😉

  4. Avatar de Tiago Pires

    except_limit(‘155’) -> nome da função dentro do loop

  5. Avatar de Rafael

    oi, e para RETIRAR o resumo, nao gostaria que aparecesse resumo algum. como faço?

  6. Avatar de Danilo Guirra

    Boa Dica, Coloquei em Meu Blog, : D Obrigado por compartilhar

  7. Avatar de Vander Lucio Silva

    Eu Fiz Do Mesmo Jeito e Desgraçou Com Meu Blog. Pode Min Ajudar a Recuperar?

    1. Avatar de Fellyph

      Qual o erro que está dando?

  8. Avatar de Manuel

    Queria colocar direto na tag Excerpt?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *