O recurso de resumo para páginas no WordPress – quando necessário no projeto – precisa ser ativado. Por padrão, o WordPress já disponibiliza a funcionalidade de resumo para os posts, além de um template tag comumente utilizado, chamado the_excerpt(), e sua alinhada get_the_excerpt().
Essa mesma opção de resumo pode ser estendida 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”.
Como implementar o resumo para páginas
É possível implementar recursos adicionais nos variados tipos de posts no WordPress através da função add_post_type_support(). Essa função recebe dois parâmetros: o tipo de post e a funcionalidade a ser agregada.
Em nosso contexto, o tipo de post é “page” e o recurso é o “excerpt”. O código da implementação do resumo para páginas seria 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 demonstrado acima deve ser colocado no arquivo functions.php do seu tema ou em um plugin. Na interface de edição de páginas, teremos o box de resumo como ilustrado na imagem abaixo:
Em caso de não visualização do box de resumo para páginas, certifique que a opção está marcada para exibição em “Opções de Tela” – exibido no canto superior direito da tela de edição de páginas.
Funções para se dar bem com os resumos no WordPress
No início deste artigo eu apresentei duas funções: 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 retornará 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 ' ...'; ... ?>
Convenhamos que o exemplo acima é trabalhoso e nada elegante. Uma melhor implementação e uso do resumo para páginas nos arquivos do tema seria 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; }
Com a implementação acima, quando a 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, já no segundo exemplo, 30 palavras. O padrão do WordPress é retornar até 55 palavras. Se o seu projeto requerer diferentes totais 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âmetros, sendo somente o primeiro requerido.
- 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
- Para finalizar, o parâmetro $more é concatenado ao texto, caso ele tenha mais que o total de palavras desejada. O padrão é composto por reticências, &hellip
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'; }
Conclusão
Resumos são utilizados em várias situações de projetos para exibir informações complementares a um conteúdo. Resumo para página também pode ser considerado, mas como percebemos, precisa ser ativado.
Como quaisquer tipos de conteúdo no WordPress são posts, é possível fazer uso do recurso em páginas ou qualquer outro tipo de post. Embora o mesmo tipo de funcionalidade possa ser utilizada através de campos personalizados, fazer uso de recursos nativos é sempre uma melhor opção.
Nesse caso será melhor para o usuário, acostumado com a interface e melhor ainda para o desenvolvedor, acostumado com o padrão de uso.