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, ….
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!