Resumo para páginas no WordPress

Home » Wordpress » snippets » Resumo para páginas no WordPress
snippets, Wordpress Nenhum comentário

Por padrão, o WordPress disponibiliza a funcionalidade de resumo para os Posts. Além de uma template tag comumente utilizada, chamada the_excerpt(), e sua alinhada get_the_excerpt().

Essa mesma opção de resumo pode ser extendida para as Páginas ou qualquer outro tipo de post personalizado – os famosos Custom Post Types. Nesse último caso, a funcionalidade é adicionada através do argumento supports que recebe um array com os suportes desejados. Para os resumos, o suporte é “excerpt”. No caso das páginas, fazemos uso da função add_post_type_support(). Assim:

<?php
add_action( 'after_setup_theme', 'theme_setup' );

function theme_setup() {
    add_action( 'init', 'add_support_to_pages' );
}

function add_support_to_pages() {
    add_post_type_support( 'page', 'excerpt' );
}

O código acima deve ser colocado no arquivo functions.php do seu tema.

A função add_post_type_support() recebe dois parâmetros: o primeiro é o tipo de post, neste caso “page”; o segundo é a funcionalidade que desejamos para o tipo de post, nesse exemplo “excerpt”, o resumo. Pronto, temos a funcionalidade de resumo para páginas. Observe o metabox:

[IMAGEM]

 

Se o metabox de Resumo não aparecer, certifique que ele esteja marcado nas Opções de tela, como exemplificado abaixo:

[IMAGEM]

 

Funções para se dar bem com os Resumos no WordPress

No início deste artigo, eu apresentei duas delas, a the_excerpt() e get_the_excerpt(). Ambas devem ser utilizadas em conjunto com o Loop do WordPress. A primeira exibirá o resumo na tela, enquanto a segunda retorná o valor e, assim, podendo ser armazenada numa variável e ser manipulada como o desenvolver precisar.

Um exemplo clássico de uso da função get_the_excerpt() é limitar a quantidade de caracteres a serem exibidos. Por exemplo:

<?php
while( have_posts() ) : the_post();
...
$_the_excerpt = get_the_excerpt();
$the_excerpt = substr( $_the_excerpt, 0, 30 );
echo $the_excerpt;
if ( strlen( $the_excerpt ) > 30 )
    echo ' ...';
...
?>

Mas convenhamos que o exemplo acima é trabalhoso. Melhor seguirmos assim:

<?php 
add_action( 'after_setup_theme', 'theme_setup' ); 

function theme_setup() { 
     add_action( 'init', 'add_support_to_pages' );
     add_filter( 'excerpt_length', 'define_excerpt_length' );
} 

function add_support_to_pages() { 
     add_post_type_support( 'page', 'excerpt' ); 
}

function define_excerpt_length( $length ) {
     return 30;
}

O exemplo acima é mais elegante. E quando chamada à função the_excerpt() for feita, será retornado no máximo 30 palavras. Importante frisar que no exemplo usando a função do PHP substr limitamos a exibição em no máximo 30 caracteres, e no segundo exemplo em 30 palavras. O padrão do WordPress é retornar até 55 palavras.

Se o seu projeto requerer diferentes total de palavras a serem retornadas, siga com o uso da função wp_trim_words(). Veja um exemplo de uso dela:

<?php
while( have_posts() ) : the_post();
...
$the_excerpt = wp_trim_words( get_the_excerpt(), 30 );
echo $the_excerpt;
...
endwhile;

A função wp_trim_words() aceita até três parâmestros, sendo somente o primeiro requerido. Vamos conhecê-los:

  • O primeiro parâmetro, $text, recebe o texto a ser analisado;
  • O segundo, $num_words, é o total de palavras a serem consideradas no texto informado. O padrão é 55;
  • E para finalizar, o parâmetro $more é concatenado ao texto caso ele tenha mais que o total de palavras desejada. O padrão é uma reticências, &hellip;.

E por falar em concatenação, vocês já devem ter percebido que o WordPress faz uso da string “[…]” junto ao texto retornado pela função the_excerpt(). Se você não gosta desse comportamento ou prefere algum outro caractere, siga assim:

<?php 
add_action( 'after_setup_theme', 'theme_setup' ); 

function theme_setup() { 
     add_action( 'init', 'add_support_to_pages' );
     add_filter( 'excerpt_length', 'define_excerpt_length' );
     add_filter( 'excerpt_more', 'define_excerpt_more' );
} 

function add_support_to_pages() { 
     add_post_type_support( 'page', 'excerpt' ); 
}

function define_excerpt_length( $length ) {
     return 30;
}

function define_excerpt_more( $default_more ) {
    return ' o que você quiser';
}

Espero que com este artigo você lide ainda melhor com o recurso de Resumos no WordPress e faça melhor uso ainda da funcionalidade.

Grande abraço!

LEAVE A COMMENT