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 uma template tag comumente utilizada, chamada 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 WP 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 ' ...'; ... ?>
Mas 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 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â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 é uma reticências, ….
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ção complementar a um conteúdo.
Resumo para páginas também pode ser considerado, mas como percebemos, precisa ser ativado.
Como qualquer tipo de conteúdo no WordPress são posts, é possível de 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.