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

Come visualizzare gli articoli della settimana scorsa in WordPress

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.

Divulgazione: I nostri contenuti sono sostenuti dai lettori. Ciò significa che se cliccate su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come WPBeginner è finanziato , perché è importante e come puoi sostenerci. Ecco il nostro processo editoriale .

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.

Il kit di strumenti WordPress definitivo

Ottenete l'accesso gratuito al nostro kit di strumenti - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Reader Interactions

8 commentiLascia una risposta

  1. Ali Hesari

    This is very useful for me. Thank you.

  2. hitesh

    this is very useful for us. keep it

  3. Kenny

    This would be great if a YouTube video was made available

  4. 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

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tenga presente che tutti i commenti sono moderati in base alle nostre politica dei commenti e il suo indirizzo e-mail NON sarà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avremo una conversazione personale e significativa.