Molti dei nostri lettori principianti iniziano presto a modificare i propri temi WordPress, ecco perché abbiamo un foglio di riferimento per temi WordPress per aiutarli a iniziare. Questo presenta alcune sfide interessanti per i nuovi utenti. Un lettore, ci ha recentemente chiesto come visualizzare i post della settimana scorsa in WordPress. Voleva solo aggiungere una sezione sulla sua home page che mostrasse i post della settimana precedente. In questo articolo, ti mostreremo come visualizzare i post della settimana scorsa in WordPress.
Prima di mostrarti come visualizzare i post della settimana precedente, diamo un'occhiata a come puoi visualizzare i post della settimana corrente usando WP_Query. Copia e incolla il seguente codice nel file functions.php del tuo tema o in un plugin specifico per il sito.
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;
}
Nell'esempio di codice sopra, abbiamo prima scoperto la settimana e l'anno correnti. Abbiamo quindi utilizzato tali valori in WP_Query per visualizzare i post della settimana corrente. Ora tutto ciò che devi fare è aggiungere <?php wpb_this_week(); ?> nel file del tuo tema dove vuoi visualizzare i post.
Era semplice, vero? Ora, per visualizzare i post della settimana scorsa, tutto ciò che devi fare è sottrarre 1 dal valore della settimana. Ma se questa è la prima settimana dell'anno, otterrai 0 per la settimana e l'anno corrente invece dell'anno scorso. Ecco come risolvere quel 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;
}
Nel codice di esempio sopra abbiamo inserito due controlli. Il primo controllo imposta il valore della settimana scorsa a 52 (che è l'ultima settimana dell'anno) quando il valore della settimana corrente è 1. Il secondo controllo imposta il valore dell'anno all'anno scorso quando il valore della settimana scorsa è 52.
Per visualizzare i post della settimana scorsa, tutto ciò che devi fare è aggiungere <?php wpb_last_week_posts(); ?> al file del template del tuo tema dove desideri visualizzarli. Oppure, se desideri avere uno shortcode in modo da poterlo aggiungere a una pagina o a un widget, aggiungi semplicemente questa riga sotto il codice fornito sopra.
add_shortcode('lastweek', 'wpb_last_week_posts');
Ora puoi usare questo shortcode in un post, una pagina o un widget come questo:
[lastweek]
Tieni presente che non hai sempre bisogno di WP_Query per creare query personalizzate. WordPress offre una serie di funzioni per aiutarti a visualizzare post recenti, archivi, commenti, ecc. Se esiste un modo più semplice per utilizzare le funzioni esistenti, allora non è necessario scrivere le tue query.
Speriamo che questo articolo ti abbia aiutato a visualizzare i post della settimana scorsa in WordPress. Sperimenta con il codice e modificalo per soddisfare le tue esigenze. Facci sapere se hai domande lasciando un commento qui sotto o unisciti a noi su Twitter.


Ali Hesari
Questo è molto utile per me. Grazie.
hitesh
questo è molto utile per noi. continuate così
Kenny
Sarebbe fantastico se fosse disponibile un video di YouTube
Allison
Sono curioso di sapere quando/perché vorrei visualizzare i post della settimana? Nella mia home page, visualizzo degli estratti, quindi i post delle mie ultime 2 settimane circa sono visibili. Cosa mi sfugge qui? Grazie!
Supporto WPBeginner
Non è necessario. Ma alcuni proprietari di altri siti web potrebbero avere un layout in cui desiderano visualizzare separatamente i post della settimana precedente. Questo tutorial è rivolto ad aiutare tali utenti.
Amministratore
faisal adil
Awesome
Chris McCoy
potresti anche sfruttare le nuove query di data http://www.viper007bond.com/2013/08/27/date-queries-in-wordpress-3-point-7/
Supporto WPBeginner
Sì, date_query può anche essere utilizzato per raggiungere lo stesso obiettivo.
Amministratore