Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Como exibir as postagens da última semana no WordPress

Muitos de nossos leitores iniciantes logo começam a modificar seus temas do WordPress, por isso temos uma folha de dicas de temas do WordPress para ajudá-los a começar. Isso traz alguns desafios interessantes para os novos usuários. Um desses leitores nos perguntou recentemente como exibir as postagens da semana passada no WordPress. Ele só queria adicionar uma seção na página inicial que exibisse as publicações da semana anterior. Neste artigo, mostraremos a você como exibir as postagens da semana anterior no WordPress.

Antes de mostrarmos como exibir as postagens da semana anterior, vamos primeiro dar uma olhada em como exibir as postagens da semana atual usando WP_Query. Copie e cole o código a seguir no arquivo functions.php do seu tema ou em um plug-in específico do site.

function wpb_this_week() { 
$week = date('W');
$year = date('Y');
$the_query = new WP_Query( 'year=' . $year . '&w=' . $week );
if ( $the_query->have_posts() ) : 
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <h2><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2>
	<?php the_excerpt(); ?>
  <?php endwhile; ?>
  <?php wp_reset_postdata(); ?>
<?php else:  ?>
  <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif;
}

No código de exemplo acima, primeiro descobrimos a semana e o ano atuais. Em seguida, usamos esses valores em WP_Query para exibir as publicações da semana atual. Agora, tudo o que você precisa fazer é adicionar <?php wpb_this_week(); ?> no arquivo do seu tema onde deseja exibir as publicações.

Isso foi simples, não foi? Agora, para exibir as publicações da semana passada, tudo o que você precisa fazer é subtrair 1 do valor da semana. Mas se essa for a primeira semana do ano, você obterá 0 para a semana e o ano atual em vez do ano passado. Veja como corrigir esse problema.


function wpb_last_week_posts() { 
$thisweek = date('W');
if ($thisweek != 1) :
$lastweek = $thisweek - 1;   
else : 
$lastweek = 52;
endif; 
$year = date('Y');
if ($lastweek != 52) :
$year = date('Y');
else: 
$year = date('Y') -1; 
endif;
$the_query = new WP_Query( 'year=' . $year . '&w=' . $lastweek );
if ( $the_query->have_posts() ) : 
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <h2><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2>
	<?php the_excerpt(); ?>
  <?php endwhile; ?>
  <?php wp_reset_postdata(); ?>
<?php else:  ?>
  <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif;

}

No código de exemplo acima, colocamos duas verificações. A primeira verificação define o valor da última semana como 52 (que é a última semana em um ano) quando o valor da semana atual é 1. A segunda verificação define o valor do ano como o ano passado quando o valor da última semana é 52.

Para exibir as postagens da semana passada, basta adicionar <?php wpb_last_week_posts(); ?> ao arquivo de modelo do seu tema onde deseja exibi-las. Ou, se quiser ter um shortcode para poder adicionar isso a uma página ou a um widget, basta adicionar esta linha abaixo do código fornecido acima.

add_shortcode('lastweek', 'wpb_last_week_posts');

Agora você pode usar esse shortcode em um post, página ou widget como este:

[lastweek]

Observe que você nem sempre precisa do WP_Query para criar consultas personalizadas. O WordPress vem com várias funções para ajudá-lo a exibir posts recentes, arquivos, comentários, etc. Se houver uma maneira mais fácil de usar as funções existentes, então você não precisará realmente escrever suas próprias consultas.

Esperamos que este artigo tenha ajudado você a exibir as postagens da semana passada no WordPress. Faça experiências com o código e modifique-o para atender às suas necessidades. Se tiver alguma dúvida, deixe um comentário abaixo ou junte-se a nós no Twitter.

Divulgação: Nosso conteúdo é apoiado pelo leitor. Isso significa que, se você clicar em alguns de nossos links, poderemos receber uma comissão. Veja como o WPBeginner é financiado, por que isso é importante e como você pode nos apoiar. Aqui está nosso processo editorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

O kit de ferramentas definitivo WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Reader Interactions

9 ComentáriosDeixe uma resposta

  1. Syed Balkhi

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Ali Hesari

    This is very useful for me. Thank you.

  3. hitesh

    this is very useful for us. keep it

  4. Kenny

    This would be great if a YouTube video was made available

  5. Allison

    I am curious about when/why I would want to display the week’s posts? On my home page, I display excerpts, so the posts from my past 2 weeks or so are visible. What am I missing here? Thanks!

    • WPBeginner Support

      You don’t need to. But some other website owners may have a layout where they might want to display previous week’s posts separately. This tutorial is aimed to help those users.

      Administrador

Deixe uma resposta

Obrigado por deixar um comentário. Lembre-se de que todos os comentários são moderados de acordo com nossos política de comentários, e seu endereço de e-mail NÃO será publicado. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.