Como Exibir Posts da Semana Passada no WordPress

Muitos dos nossos leitores iniciantes logo começam a modificar seus temas do WordPress, é por isso que temos um guia rápido de temas WordPress para ajudá-los a começar. Isso traz alguns desafios interessantes para novos usuários. Um desses leitores, recentemente nos perguntou como exibir posts da semana passada no WordPress. Eles apenas queriam adicionar uma seção em sua página inicial que exibisse posts da semana anterior. Neste artigo, mostraremos como exibir posts da semana passada no WordPress.

Antes de mostrarmos como exibir posts da semana anterior, vamos primeiro dar uma olhada em como você pode exibir posts da semana atual usando WP_Query. Copie e cole o seguinte código no arquivo functions.php do seu tema ou em um plugin 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 exemplo de código acima, primeiro descobrimos a semana e o ano atuais. Em seguida, usamos esses valores no WP_Query para exibir posts da semana atual. Agora, tudo o que você precisa fazer é adicionar <?php wpb_this_week(); ?> no arquivo do seu tema onde você deseja exibir os posts.

Isso foi simples, não foi? Agora, para exibir as postagens da semana passada, tudo o que você precisa fazer é subtrair 1 do valor da semana. Mas se esta 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 semana passada como 52 (que é a última semana do 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 semana passada é 52.

Para exibir as postagens da semana passada, tudo o que você precisa fazer é adicionar <?php wpb_last_week_posts(); ?> ao arquivo de modelo do seu tema onde você gostaria de exibi-las. Ou, se você quiser um shortcode para poder adicioná-lo a uma página ou widget, basta adicionar esta linha abaixo do código fornecido acima.

add_shortcode('lastweek', 'wpb_last_week_posts');

Agora você pode usar este shortcode em uma postagem, página ou widget como este:

[lastweek]

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

Esperamos que este artigo tenha ajudado você a exibir as postagens da semana passada no WordPress. Experimente o código e modifique-o para atender às suas necessidades. Informe-nos se tiver alguma dúvida deixando um comentário abaixo ou junte-se a nós no Twitter.

Aviso: Nosso conteúdo é apoiado pelos leitores. Isso significa que, se você clicar em alguns de nossos links, poderemos ganhar uma comissão. Veja como o WPBeginner é financiado, por que isso importa e como você pode nos apoiar. Aqui está nosso processo editorial.

O Kit de Ferramentas Definitivo para WordPress

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

Interações do Leitor

8 CommentsLeave a Reply

  1. Fico curioso sobre quando/por que eu gostaria de exibir as postagens da semana? Na minha página inicial, exibo trechos, então as postagens das minhas últimas 2 semanas ou mais estão visíveis. O que estou perdendo aqui? Obrigado!

    • Você não precisa. Mas alguns outros proprietários de sites podem ter um layout onde desejam exibir as postagens da semana anterior separadamente. Este tutorial é voltado para ajudar esses usuários.

      Admin

Deixar uma resposta

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