Beaucoup de nos lecteurs débutants commencent rapidement à modifier leurs thèmes WordPress, c’est pourquoi nous avons une antisèche sur les thèmes WordPress pour les aider à Premiers pas. Cela amène quelques défis intéressants pour les utilisateurs/utilisatrices nouveaux. Un de ces lecteurs nous a récemment demandé comment afficher les publications de la semaine dernière sur WordPress. Il souhaitait simplement ajouter une section sur sa page d’accueil qui afficherait les publications de la semaine précédente. Dans cet article, nous allons vous afficher comment afficher les publications de la semaine dernière sur WordPress.
Avant d’afficher les publications de la semaine précédente, voyons d’abord comment afficher les articles de la semaine en cours en utilisant WP_Query. Copiez et collez le code suivant dans le fichier functions.php de votre thème ou dans une extension spécifique à votre 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; }
Dans l’exemple de code ci-dessus, nous avons d’abord trouvé la semaine et l’année en cours. Nous avons ensuite utilisé ces valeurs dans WP_Query pour afficher les publications de la semaine en cours. Il ne vous reste plus qu’à ajouter <?php wpb_this_week() ; ?>
dans le fichier de votre thème à l’endroit où vous souhaitez afficher les publications.
C’était simple, n’est-ce pas ? Dernier point, pour afficher les publications de la semaine dernière, il suffit de soustraire 1 à la valeur de la semaine. Mais s’il s’agit de la première semaine de l’année, vous obtiendrez 0 pour la semaine et l’année en cours au lieu de l’année dernière. Voici comment corriger ce problème.
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; }
Dans l’exemple de code ci-dessus, nous avons placé deux contrôles. La première définit la valeur de la dernière semaine à 52 (qui est la dernière semaine de l’année) lorsque la valeur de la semaine en cours est 1. La seconde définit la valeur de l’année à l’année dernière lorsque la valeur de la dernière semaine est 52.
Pour afficher les publications de la semaine dernière, il vous suffit d’ajouter <?php wpb_last_week_posts() ; ?>
au fichier modèle de votre thème à l’endroit où vous souhaitez les afficher. Ou si vous souhaitez disposer d’un code court vous permettant d’ajouter ceci dans une page ou un widget, ajoutez simplement cette ligne en dessous du code donné ci-dessus.
add_shortcode('lastweek', 'wpb_last_week_posts');
Vous pouvez maintenant utiliser ce code court dans une publication, une page ou un widget comme ceci :
[lastweek]
Veuillez noter que vous n’avez pas toujours besoin de WP_Query pour créer des requêtes personnalisées. WordPress est livré avec une poignée de fonctions pour vous aider à afficher les publications récentes, les archives, les commentaires, etc. S’il existe un moyen plus simple d’utiliser les fonctions existantes, alors vous n’avez pas vraiment besoin d’écrire vos propres requêtes.
Nous espérons que cet article vous a aidé à afficher les publications de la semaine dernière dans WordPress. Expérimentez le code et modifiez-le en fonction de vos besoins. Faites-nous savoir si vous avez des questions en laissant un commentaire ci-dessous ou rejoignez-nous sur 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.
Administrateur
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.
Administrateur