Trabalhando a tag the_excpert no loop wordpress


Em muitos templates, é usado o resumo de um artigo e não ele inteiro. Isso é possível usando a tag more  <!– more –>ou o resumo, que pode ser habilitado nas opções de tela da página ‘adicionar novo post’, do painel do wordpress. Você pode usar também o plugin evermore, mas lembre-se, quanto menor o número de plugins, mais leve seu site fica.

Em algumas situações, como desenvolvimento de templates para clientes, seria mais interessante ter esse recurso automático no blog. Isso é possível colocando a tag <?php the_excpert ?>no lugar da tag  <?php the_content?>, no loop. Caso você não entenda como funciona o loop do wordpress, recomendo que leia o Codex do wordpress em português e o Loop em ação em inglês. O loop ficaria assim:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?> 
<h1><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to
<?php the_title(); ?>">
<?php the_title(); ?></a></h1>
<?php the_time('F jS, Y') ?> by <?php the_author() ?>    
<h3><a href="<?php the_permalink(); ?>" title=
"<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ),
the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_excerpt(''); ?>
</a></h3>
<?php endwhile; else: ?>
<?php _e('Desculpe, não encontramos o artigo que você procurava'); ?>
<?php endif; ?>

O padrão do ‘the_excpert’ é 55 palavras. Caso você queira mudar o número de palavras,
acrescente este código ao seu functions.php:

/*     TAMANHO DO THE_EXCPERT */

add_filter('excerpt_length', 'my_excerpt_length');
function my_excerpt_length($length) {
return 25; }

Agora o resumo do seu artigo aparescerá com 25 palavras. Para alterar, basta mudar o número 25 na linha ‘return 25;’ para o que melhor se adaptar ao layout do seu tema.

Podemos também, adicionar imagens nos resumos, usando a tag <?php the_post_thumbnail ?>. Nosso loop ficaria assim:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php if ( has_post_thumbnail() ) { the_post_thumbnail(); } ?>
<h1><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to
<?php the_title(); ?>">
<?php the_title(); ?></a></h1>
<?php the_time('F jS, Y') ?> by <?php the_author() ?>    
<h3><a href="<?php the_permalink(); ?>" title=
"<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ),
the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_excerpt(''); ?>
</a></h3>
<?php endwhile; else: ?>
<?php _e('Desculpe, não encontramos o artigo que você procurava'); ?>
<?php endif; ?>

Se você quiser mostrar apenas o penúltimo post no loop, basta acrescentar o seguinte código abaixo da linha
<?php while (have_posts()) : the_post(); ?>:

Créditos do código: Madly luv

<?php $lastposts = get_posts('numberposts=1&offset=1');
foreach($lastposts as $post) :
    setup_postdata($post); ?>

Agora insira a tag <?php endforeach; ?> antes da tag <?php endwhile; else: ?> e o loop está pronto. Caso você
queira mostrar o último e o antepenúltimo post, troque o número 2 pelo número 1 em ‘numberposts=1’. Vamos ver
como ficou nosso loop?

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php $lastposts = get_posts('numberposts=2&offset=1');
foreach($lastposts as $post) :
setup_postdata($post); ?>
<?php if ( has_post_thumbnail() ) { the_post_thumbnail(); } ?>
<h1><a href="<?php the_permalink() ?>" rel="bookmark" title=
"Permanent Link to <?php the_title(); ?>">
<?php the_title(); ?></a></h1>
<?php the_time('F jS, Y') ?> by <?php the_author() ?>    
<h3><a href="<?php the_permalink(); ?>" title=
"<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ),
the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_excerpt(''); ?>
</a></h3>
<?php endforeach; ?>   
<?php endwhile; else: ?>
<?php _e('Desculpe, não encontramos o artigo que você procurava'); ?>
<?php endif; ?>

Pronto, agora temos o loop mostrando o penúltimo e o antepenúltimo post. Abaixo segue o código inserido na index.php ou no single.php:

<?php get_header(); ?>

<div class="content">

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php $lastposts = get_posts('numberposts=2&offset=1');
foreach($lastposts as $post) :
setup_postdata($post); ?>
<?php if ( has_post_thumbnail() ) { the_post_thumbnail(); } ?>
<h1><a href="<?php the_permalink() ?>" rel="bookmark" title=
"Permanent Link to <?php the_title(); ?>">
<?php the_title(); ?></a></h1>
<?php the_time('F jS, Y') ?> by <?php the_author() ?>    
<h3><a href="<?php the_permalink(); ?>" title=
"<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ),
the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_excerpt(''); ?>
</a></h3>
<?php endforeach; ?>   
<?php endwhile; else: ?>
<?php _e('Desculpe, não encontramos o artigo que você procurava'); ?>
<?php endif; ?>

</div> <!-- fecha a div content -->

<?php get_sidebar(); ?>

<?php get_footer(); ?>

Gostou do artigo? Já utilizava a função the_excpert, ou prefere criar os resumos manualmente? Prefere o uso de plugins? Comente abaixo.

Rate this post

Quer aprender a ganhar dinheiro com Google Adsense em blogs?

Rodrigo Zandonadi

Formado em marketing pela UNIP - Universidade Paulista, adoro desenvolvimento web, blogs, wordpress e redes sociais. Dono dos blogs Aprenda Blogando e Universo Fantástico. Gosto de ler, navegar na internet e passear com minha esposa. Amo a Deus, e busco viver sua vontade pra mim.

Website: http://aprendablogando.com

Deixe uma resposta