Como exibir as postagens da semana passada no WordPress

Muitos de nossos leitores de nível iniciante logo começam a modificar seus temas do WordPress, e é por isso que temos uma folha de truques do tema WordPress para ajudá-los a começar. Isso traz alguns desafios interessantes para novos usuários. Um desses leitores, nos perguntou recentemente como exibir as postagens da semana passada no WordPress. Eles só queriam adicionar uma seção em sua página inicial que exibisse mensagens da semana anterior. Neste artigo, mostraremos como exibir as postagens da semana passada no WordPress.

Antes de mostrarmos como exibir as postagens da semana anterior, primeiro dê uma olhada em como você pode exibir as postagens da semana atual usando o WP_Query. Copie e cole o seguinte código no arquivo functions.php do seu tema ou em um plugin específico do site.

função wpb_this_week () {
 $ semana = data ('W');
 $ ano = data ('Y');
 $ the_query = new WP_Query ('year ='. $ year. '& w ='. $ week);
 se ($ the_query-> have_posts ()):
 enquanto ($ the_query-> have_posts ()): $ the_query-> the_post ();  ?> 

"title =" Link permanente para ">

No código de exemplo acima, descobrimos pela primeira vez a semana e ano atuais. Usamos esses valores em WP_Query para exibir postagens da semana atual. Agora, tudo o que você precisa fazer é adicionar no seu arquivo de tema onde deseja exibir as postagens.

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

função wpb_last_week_posts () {
 $ thisweek = date ('W');
 se ($ thisweek! = 1):
 $ lastweek = $ thisweek - 1;
 outro :
 $ lastweek = 52;
 fim se;
 $ ano = data ('Y');
 se ($ lastweek! = 52):
 $ ano = data ('Y');
 outro:
 $ ano = data ('Y') -1;
 fim se;
 $ the_query = new WP_Query ('year ='. $ year. '& w ='. $ lastweek);
 se ($ the_query-> have_posts ()):
 enquanto ($ the_query-> have_posts ()): $ the_query-> the_post ();  ?> 

"title =" Link permanente para ">

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

Para exibir as postagens da semana passada, tudo o que você precisa fazer é adicionar para o arquivo de modelo do seu tema onde você gostaria de exibi-los. Ou se você gostaria de ter um código curto para que você possa adicionar isso em uma página ou em um widget, basta adicionar esta linha abaixo do código indicado acima.

add_shortcode ('lastweek', 'wpb_last_week_posts'); 

Agora você pode usar esse shortcode em uma publicação, página ou um widget como este:

[semana passada]

Observe que você nem sempre precisa de WP_Query para criar consultas personalizadas. O WordPress vem com um punhado de 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 o ajude a exibir as postagens da semana passada no WordPress. Experimente com o código e modifique-o para atender às suas necessidades. Deixe-nos saber se você tem alguma dúvida deixando um comentário abaixo ou junte-se a nós no Twitter.