Molti dei nostri lettori principianti iniziano presto a modificare i loro temi WordPress, per questo abbiamo un foglio informativo sui temi WordPress per aiutarli a iniziare. Questo comporta alcune sfide interessanti per i nuovi utenti. Uno di questi lettori ci ha recentemente chiesto come visualizzare gli articoli della settimana scorsa in WordPress. Volevano solo add-on una sezione sulla loro homepage che visualizzasse gli articoli della settimana precedente. In questo articolo vi mostreremo come visualizzare gli articoli della settimana scorsa in WordPress.
Prima di mostrare come visualizzare gli articoli della settimana precedente, vediamo come visualizzare gli articoli della settimana corrente utilizzando WP_Query. Copiate e incollate il seguente codice nel file functions.php del vostro tema o in un plugin specifico del 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 qui sopra, abbiamo prima individuato la settimana e l’anno correnti. Abbiamo poi usato questi valori in WP_Query per visualizzare gli articoli della settimana corrente. Ora tutto ciò che dovete fare è aggiungere <?php wpb_this_week(); ?>
nel file del tema in cui volete visualizzare gli articoli.
È stato semplice, vero? Ora, per visualizzare gli articoli della settimana scorsa, basta togliere 1 dal valore della settimana. Ma se questa è la prima settimana dell’anno, si otterrà 0 per la settimana e l’anno corrente invece dell’anno scorso. Ecco come correggere il 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 riportato sono stati inseriti due selezionati. Il primo controllo seleziona il valore dell’ultima settimana a 52 (che è l’ultima settimana di un anno) quando il valore della settimana corrente è 1. Il secondo controllo imposta il valore dell’anno sull’anno scorso quando il valore dell’ultima settimana è 52.
Per visualizzare gli articoli della settimana scorsa, basta aggiungere <?php wpb_last_week_posts(); ?>
al template del tema in cui si desidera visualizzarli. Oppure, se si desidera avere uno shortcode per poterlo aggiungere a una pagina o a un widget, è sufficiente aggiungere questa riga sotto il codice fornito sopra.
add_shortcode('lastweek', 'wpb_last_week_posts');
Ora è possibile utilizzare questo shortcode in un articolo, in una pagina o in un widget come questo:
[lastweek]
NON SI TRADUCE: non è sempre necessario WP_Query per creare query personalizzate. WordPress dispone di una serie di funzioni che aiutano a visualizzare gli articoli recenti, gli archivi, i commenti, ecc. Se esiste un modo più semplice per utilizzare le funzioni esistenti, allora non è necessario scrivere le proprie query.
Speriamo che questo articolo vi abbia aiutato a visualizzare gli articoli della settimana scorsa in WordPress. Sperimentate il codice e modificatelo per soddisfare le vostre esigenze. Fateci sapere se avete domande lasciando un commento qui sotto o raggiungeteci su Twitter.
Ali Hesari
This is very useful for me. Thank you.
hitesh
this is very useful for us. keep it
Kenny
This would be great if a YouTube video was made available
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.
Admin
faisal adil
Awesome
Chris McCoy
you could also take advantage of the new date query http://www.viper007bond.com/2013/08/27/date-queries-in-wordpress-3-point-7/
WPBeginner Support
Yes date_query can also be used to achieve the same goal.
Admin